c - 您可以将不带方括号或下标的数组添加到整数吗?结果是什么?
问题描述
我正在参加一个在线讲座,我看到了这个函数来求和一个数组
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]
)指向数组末尾的一个元素。
在数组末尾有一个指向一个元素的指针是合法的,但是您不能取消引用该指针。
推荐阅读
- flutter - Flutter/Dart Json 解析
- linux - 如何使用 awk 添加两个列?
- javascript - 将 jQuery 转换为 JS toggleClass
- oauth-2.0 - 如何保护 OAuth2.0 密钥和密钥轮换
- java - 尝试初始化 Java 接口时出现 NullPointerException
- php - Php不会在警告时中断执行
- r - 我怎样才能让这个 gsub 函数为我工作?
- angular - 如何通过路由在 Angular 中托管文件?
- android - 为什么状态为已退款的订单在 Google 应用内支付系统中显示为已购买?
- javascript - 去除外部格式但保持缩进和回车
元素输入