C ++代码输出说明

时间:2013-04-24 02:11:07

标签: c++ loops pointers for-loop output

我有以下代码,问题要求我找到输出。我通过键入输入找到了输出(2),但是我无法弄清楚如何/为什么。任何帮助?

以下是代码:

int scores[5];
int *numbers = scores;
for (int i=0; i <=4; i++)
  *(numbers+i)=i;
cout << numbers[2] <<endl;

3 个答案:

答案 0 :(得分:0)

您的代码基本上是

scores[2] = 2;
cout<<scores[2]<<endl;

因此答案..

更详细:

int scores[5];
int *numbers = scores;  //numbers points to the memory location of the array scores
for (int i=0; i <=4; i++) // as mentioned, stray ';'
  *(numbers+i)=i; //same as numbers[i] = i  which is same as scores[i] = i
cout << numbers[2] <<endl;

答案 1 :(得分:0)

for循环执行的唯一语句是

*(numbers+i)=i;

使用deference运算符(*)将int元素的索引存储在该位置。

然后你打印出第三个数字,相当于2,因为数组从索引0开始。

答案 2 :(得分:0)

设置指向数组的第一个内存位置的指针,然后遍历一系列内存地址并写入它们。应该注意的是,使用指针算法和解除引用,

*(pointer + i) = i;

与使用下标运算符相同:

pointer[i] = i;