在for语句后面加了个分号,杯具了

图片传不上来,我用的VC++6.0
语句在下面——
#include<iostream>
using namespace std;
int main()
{
int a;
int s=0;
for(a=0;a<10;a++);
/*让人困惑的是:在FOR语句后加了一个分号后输出的值为“10”,而没加分号时a最大只能达到9
,什么原因啊,高级语言还动不动就扯上CPU运作原理?*/
cout<<a;
system("pause");

}

这个很正常啊。有什么疑问的啊。
加了分号相当于执行了10次空循环,然后退出时a=10
不加分号的话,里面输出a=9之后,a++,然后才跳出循环。追问

加分号相当于执行了10次,怎么个“相当”法,我菜鸟,昨天刚开始学,大大,给赏个AFQ吧。
我猜,我想问的是分号运算符的功能。

追答

分号是语句结束符。并不是运算符啊。一个语句只有分号说明是空语句。什么都不执行。
相当于
for(a=0;a<10;a++)
{
;
}

追问

哦,是这样啊,你说的真精辟啊,一针见血,正中靶心,我一看就了然了。原来分号在这里不能被孤立地当做一个符号,它其实是for循环的一部分或者说就是for循环的全部内容,是这么理解对吧。

温馨提示:内容为网友见解,仅供参考
无其他回答

在for语句后面加了个分号,杯具了
这个很正常啊。有什么疑问的啊。加了分号相当于执行了10次空循环,然后退出时a=10 不加分号的话,里面输出a=9之后,a++,然后才跳出循环。

C语言代码后面加分号代表什么
\/\/ 通常情况是代表语句结束,偶尔会有个例外(比如说for语句)。int a; \/\/ 定义了Int型变量a,语句结束,加上;float b, \/\/ 定义了float型变量b,语句未结束 c; \/\/ 继续定义了float变量c,语句结果,加上;for (int i=0; \/\/ ;前表示for语句的初始化语句 i<10; \/\/ ;前...

c代码纠错
这段代码不是你想的那样输入一个数,就执行一下 s=s+a[i];这段代码 for语句在后面没有加{}是。默认的在for循环范围内的语句就只有跟着foy后面的一句语句,这里就只有 ;在for语句的范围以内(一段语句以分号结尾)改:for(i=0;i<10;i++){scanf("%d",&a[i]);s=s+a[i];} 对于初学...

相似回答