【发布时间】:2015-05-29 21:26:18
【问题描述】:
以下代码为前两个 for 语句正确输出数组元素,但在第三个代码中,当使用 cout 时,它错误地从基于范围的 for 循环中输出数组元素(第一个与 printf 一起使用)。这是为什么呢?
#include <iostream>
using namespace std;
int main( int argc, char ** argv )
{
int myArray[]={10,20,30,40,50};
for (int i : myArray) {
printf("%d\n", i);
}
for (int i = 0 ; i < 5; i++) {
cout << myArray[i] << endl;
}
for (int i : myArray) {
cout << myArray[i] << endl;
}
return 0;
}
输出:
10
20
30
40
50
10
20
30
40
50
-1707465271
0
1606417258
1606417820
1606418039
【问题讨论】: