问题描述
- c语言中一个数组输出的问题
-
#include
int main()
{
int i;
int temp[5];
for(i=1;i<=5;i++)
{
temp[i]=i;
}printf("---------"); for(i=1;i<=5;i++) { printf("%d",temp[i]); } return 0;
}
为什么能正常的给第5个元素赋值,并能输出第5个元素
解决方案
你越界了,数组下标从0开始,应该是
i=0;i<5
解决方案二:
数组下标从0开始,到size减1结束,到size就多了一个
解决方案三:
printf("---------");
for(i=0;i<5;i++)
{
printf("%d",temp[i]);
}
return 0;
解决方案四:
printf("---------");
for(i=0;i<5;i++)
{
printf("%d",temp[i]);
}
return 0;
就是这个吧
解决方案五:
printf("---------");
for(i=1;i<5;i++)
printf("%d ",temp[i]);
printf("%dn",temp[i]);
return 0;
}
解决方案六:
printf("---------");
for(i=0;i<5;i++)
{
printf("%d",temp[i]);
}
return 0;
是从0开始的
解决方案七:
数组越界,a[5]的实际存放是a[0]~a[4],a[5]表示数据a有五个元素.
解决方案八:
C语言的数组下标由0开始的。
解决方案九:
数组越界了。a[5]是指该数组有5个元素,但是存储的下标是从0~4,即数组元素是a[0]~a[4]。
解决方案十:
数组越界 不是说非得出错,要看你越界后的操作有什么其他影响没有。越界访问会产生不确定的结果,既然不确定 那就是说有可能没有坏的结果产生,也有可能直接使得程序崩溃
时间: 2024-09-14 23:43:13