我在访问指针数组中的元素时有些困惑。假设我有一个指向大小为n的int指针数组的指针int **score_cards。我想要找到数组元素所指向的整数之和。
我考虑过以下方法:
int sum = 0;
int i;
for(i = 0;i<n;i++){
sum = sum + *(*score_card+ i);
}
但这是错误的,而以下是正确的:
int sum = 0;
int i;
for(i = 0;i<n;i++){
sum = sum + *(*(score_card + i));
}
现在,我有两个问题。由于*score_cards指向数组的第一个元素,那么第i个元素不是*score_cards + i吗?即第一个元素的地址加上i?另外,为什么我们要将i增加1,而不是sizeof(*int)?
谢谢!
a[b]
被定义为等于*(a + b)
。 - fuz