dnf秦时明月:C语言问题,高手进!~

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 03:11:27
main()
{ char str[13]; int i;
for (i=0;i<13;i++)
str[i]='A'+2*i;
printf("%3c",str[i]);getch();
}
的结果为什么是 g请说明一下

因为循环结束时i为13,已经超出了str的下标范围(0-12),即str[13]的值实际上是未知的,可能为0-255之间的任何值。在你的机子上可能正好为'g',在我的机子上就是204。

你这个程序很奇怪,而且操作了不安全的内存。

str[12]=A的ascii码+24,应该是g的ascii码吧,不过你首先先要i--,i=13已经越界

我算着也应该是 A C E G……这样,第四个就是G了,怎么也不会再出来G

有错误的!~
printf("%3c",str[i]);这里出错!下标超界