小编cuz*_*ile的帖子

C 中指向 int 指针数组的指针

我在访问指针数组中的元素时有点困惑。假设我有一个指针 int **score_cards ,它指向一个大小为 n 的 int 指针数组。我想找到数组元素所指向的整数的总和。

我正在考虑这样做:

int sum = 0;
int i;
for(i = 0;i<n;i++){
    sum = sum + *(*score_card+ i);
}
Run Code Online (Sandbox Code Playgroud)

但这是错误的,而以下是正确的:

int sum = 0;
int i;
for(i = 0;i<n;i++){
    sum = sum + *(*(score_card + i));
}
Run Code Online (Sandbox Code Playgroud)

现在,我有两个问题,既然 *score_cards 指向数组的第一个元素,那么第 i 个元素不是 *score_cards + i 吗?即第一个元素的地址+ i?另外,为什么我们将 i 加 1,而不是 sizeof(*int) ?提前致谢!

c arrays pointers

3
推荐指数
1
解决办法
374
查看次数

标签 统计

arrays ×1

c ×1

pointers ×1