在下面使用指针数组的程序中存在一个错误,试分析这个程序,并上机运行,观察运行结果,找到这个错误,并分析出错的原因。 #include <stdio.h> void Print(char *arr[], int len); int main(void) { char *pArray[] = {"Fred","Barrey","Wilma","Betty"}; int num = sizeof(pArray) / sizeof(char); printf("Total string numbers = %d\n", num); Print(pArray, num); return 0; } void Print(char *arr[], int len) { int i; for (i=0; i<len; i++) { printf("%s,", arr[i]); } printf("\n"); }
时间: 2023-12-03 16:46:20 浏览: 98
这个程序的错误在于计算字符串数组中元素个数的方式。在主函数中,计算元素个数的代码是:
```c
int num = sizeof(pArray) / sizeof(char);
```
这里使用了 `sizeof(char)`,实际上一个字符占用的空间是1字节,因此这个计算的结果是字符串数组中元素的总字节数除以1,而不是元素的个数。因此,实际上 `num` 变量的值被赋为了4,而不是字符串数组中元素的个数。
修正这个错误的方法是将计算元素个数的代码修改为:
```c
int num = sizeof(pArray) / sizeof(pArray[0]);
```
这样就可以正确计算出字符串数组中元素的个数了。
相关问题
编写一个函数,使用指针遍历数组,并计算出数组中所有元素的和
编写一个函数使用指针遍历数组,可以参考以下代码:
```c++
#include<iostream>
using namespace std;
int sum(int arr[], int len) // 定义函数
{
int *p = arr; // 定义指针
int s = 0;
for(int i=0; i<len; i++)
{
s += *(p+i); // 指针遍历数组
}
return s;
}
int main()
{
int arr[] = {1, 2, 3, 4, 5}; // 定义数组
int len = sizeof(arr)/sizeof(arr); // 计算数组长度
int s = sum(arr, len); // 调用函数,计算数组元素和
cout << "数组元素的和为:" << s << endl;
return 0;
}
```
该函数使用指针遍历数组,并计算出数组中所有元素的和。
C语言编写一个函数,使用指针遍历数组,并计算出数组中所有元素的和。
可以编写一个函数来使用指针遍历数组,并计算出数组中所有元素的和。函数的代码如下所示:
```c
int arraySum(int *arr, int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += *(arr + i);
}
return sum;
}
```
其中,`arr`是一个指向整型数组的指针,`n`是数组的大小。函数内部使用一个循环遍历数组中的每个元素,使用指针来获取每个元素的值,并将它们相加。最终返回所有元素的和。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)