救命啊!!!!这程序咋这闹心呢???????

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:30:46
为什么我一运行这个程序就告诉我应用程序错误
要终止程序,请单击确定
要调试程序,请单击取消
#include<iostream.h>
main()
{
int p[11];
int k,i,tem;
for(k=1;k<=11;k++)
{
for(i=0;i<k;i++)
p[k]=i;}
cout<<p[k];
}
#include<iostream.h>
main()
{
int p[11];
int k;

for(k=0;k<11;k++)
p[k]=k;

cout<<p[k];
}
修改后为什么运行结果是1245120,我觉得应该是10啊

你是要给一个数组赋值然后输出这个数组中的值吗???

#include<iostream.h>
main()
{
int p[11];
int k,i,tem; //这个tem干吗用的???
for(k=1;k<=11;k++)
{
for(i=0;i<k;i++)
p[k]=i;} -------//只有一行语句可以不用{}.
cout<<p[k]; //现在你要打印第12个元素的值???你的数组只有11个位置呀
}
数组的下标引用是从0开始的,如果你的数组大小是11,那么数组的下标编号是从0--10.上述程序经过for循环之后k 的值是11了,如果这个时候引用p[11]的值将导致程序的崩溃.因为p[11]可能指向了另一个地址,这个地址不是你的程序能访问的...

所以当你一运行这个程序就告诉你应用程序错误 .

#include<iostream.h>
main()
{
int p[11];
int k;

for(k=0;k<11;k++)
p[k]=k;

cout<<p[k];
}

挺简单 的嘛