我正在尝试理解C ++,因为我是新手。 以下代码每次运行时都会崩溃。据我所知,它应该输出0到9。 声明i = num [i]我知道是没有意义的,但是添加这些额外的代码会使它崩溃。 为什么呢?
int num[10];
for(int i = 0; i < 10; i++){
i = num[i];
cout << num[i];
}
编辑 - 谢谢,猜猜我没有看到那个小错误。现在似乎显而易见......
答案 0 :(得分:1)
您正在为num[i]
分配未定义的i
。然后你在循环的下一次迭代中递增i,并访问i
的元素num
(未定义),这只有10个项目。
实际上,您正试图访问您无法控制的位置num[1978253]
的内存。
答案 1 :(得分:0)
int num[10];
for(int i = 0; i < 10; i++){
i = num[i];
cout << num[i];
}
在上面的代码中,您没有将任何内容存储到您声明的数组中。所以它会输出一些随机值。
以下内容可以按您的想法运作:
int num[10]={0,1,2,3,4,5,6,7,8,9};
for(int i = 0; i <= 10; i++){
cout << num[i];
}