我正在参加一个在线讲座,我看到了这个对数组求和的函数
int arraySum(int array[], const int n)
{
int sum = 0, *ptr;
int *const arrayEnd = array + n;
...
}
我以前从未见过将数组添加到整数中。如果 n 是数组的大小,那么 array + n 是否意味着为 arrayEnd 分配了 array[] 中最后一个元素的值,或者它是否意味着诸如该元素地址之类的其他内容?
最佳答案
您看到的是指针运算。
array
是指向数组开头的指针。假设数组有 n
个元素,那么 array + n
(或等效的 &array[n]
)指向数组末尾后的一个元素.
指针指向数组末尾后的一个元素是合法的,但是您不能取消引用该指针。
关于你能把一个没有方括号或下标的数组加到一个整数上吗?结果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54152877/