我读了this page关于数组和指针之间的关系,它阐明了很多东西,但我仍然有点困惑。以下代码:C - 帮助理解指针
#include <stdio.h>
int main()
{
int i, classes[6],sum = 0;
printf("Enter 6 numbers:\n");
for(i = 0; i < 6; ++i)
{
// (classes + i) is equivalent to &classes[i]
scanf("%d",(classes + i));
// *(classes + i) is equivalent to classes[i]
sum += *(classes + i);
}
printf("Sum = %d", sum);
return 0;
}
所以从我的理解这个代码读取为6点的整数,然后在存储器中地址(类+ I)存储的每个整数。然后打印出每个存储器地址*(类+ i)的值的总和。这一切都有道理,但为什么这些值需要首先存储到(classes + i)中?这是做什么完成的?感谢您的帮助,我很努力地完全理解这个东西。
'为什么需要存储值'没有理由,只是为了向您展示如何将值存储在数组的不同索引处 –
您似乎完全理解代码的作用。为了理解*为什么有人做了这样的代码,你必须要问谁写了它。您可以尽可能彻底地查看'printf(“驼鹿”);''''''''''''''''''''''''''' –
如果你的意思是“你为什么必须这样做,得到6个int的总和?”。答案是,你没有。您可以简单地循环,将每个输入的值添加到“sum”,然后在最后打印出总和。除非你需要访问'for'循环之外的单个值,否则没有实际的理由来存储它们。 – yano