首页 > 解决方案 > 您可以将不带方括号或下标的数组添加到整数吗?结果是什么?

问题描述

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

int arraySum(int array[], const int n)
    {
        int sum = 0, *ptr;
        int *const arrayEnd = array + n;
        ...
    }

我以前从未见过将数组添加到整数中。如果 n 是数组的大小,array + n 是否意味着 arrayEnd 被分配了 array[] 中最后一个元素的值,还是意味着其他类似该元素的地址?

标签: carrayspointers

解决方案


你看到的是指针算术。

array是指向数组开头的指针。假设数组有n元素,则array + n(或等效地&array[n])指向数组末尾的一个元素。

在数组末尾有一个指向一个元素的指针是合法的,但是您不能取消引用该指针。


推荐阅读