你能把一个没有方括号或下标的数组加到一个整数上吗?结果是什么?

标签 c arrays pointers

我正在参加一个在线讲座,我看到了这个对数组求和的函数

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/

相关文章:

c - 物体通过世界轴而不是局部轴OpenGL旋转

ruby - 如何有效地从哈希的哈希中提取具有特定键名的所有值?

c - 为什么在 C 中返回给定错误的语句?

c - 从函数获取字符指针

c - wifi网络中其他wifi设备的MAC地址

结构的 C 不完整类型

c++ - 固定大小数组的 vector

c - munmap_chunk() : invalid pointer in c

C++ 链表不保留新节点

转换 NULL 指针