for语句和while语句后面有;的问题
如题,现在遇到了这样的问题。for和while本来是用来给出条件的,现在在它们后面加上了;代码如下
- C/C++ code
int i=0; while(i++ <= 2) ; printf("%d", i);
- C/C++ code
int a[4]={1,2,3,4}, i;for(i=1;i<4;i++);printf("%d",a[i]);
我和同学分析:第一个,当i>=2时循环终止,再加1,也就是输出3,但这是没有;的情形,现在这样的结果是4,没有头绪。
第二个分析是for只执行i++,到i=3时终止,所以执行完应该是4,而数组中不存在a[4]所以结果是随机的。实际运行结果是1638280(win7 x64,VC++6.0)。
希望大家帮忙解答。谢谢
[解决办法]