C语言提问 请问下列程序我做的正确不?

来源:百度知道 编辑:UC知道 时间:2024/05/21 00:44:05
main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf(“%d\n”,s);
}
个人认为是这样执行的:
s=0,i=1 1<3 (真) 执行空语句 i=i+1=2,s=s+i=0+2=2
s=2,i=2 2<3 (真) 执行空语句 i=i+1=2+1=3,s=s+i=2+3=5
s=5,i=3 3<3 (假) 跳出 输出5

完全正确

正确

对,就是这么执行的

正确的,相信自己。

逗号表达式,蛮标准的,相信自己,正确的!

逗号表达式的语法为:
表达式1,表达式2,...表达式n
C++顺序计算表达式1,表达式2,……,表达式n的值。例如:
int a,b,c;
a=l,b=a+2, c=b+3;
由于按顺序求值, 所以能够保证b一定在a赋值之后, c一定在b赋值之后。该逗号表 达式可以用下面3个有序的赋值语句来表示:
a=1;
b=a+2;
c=b+3;
逗号表达式是有值的,这一点是语句所不能代替的。逗号表达式的值为第n个子表达 式的值,即表达式n的值。例如:
int a,b,c,d;
d=(a=1,b=a+2,c=b+3);
cout<<d<<endl;
输出结果为:
6
上例中输出的结果d即为c的值。
逗号表达式还可以用于函数调用中的参数。例如:
func(n,(j=1,j+4),k);
该函数调用有3个参数,中间的参数是一个逗号表达式。括号是必须的,否则,该函数有4个参数了。逗号表达式作为值的形式,可以用于几乎所有的地方。
C++中,如果逗号表达式的最后一个表达式为左值,则该逗号表达式为左值。例如:
(a=1,b,c+1,d)=5; //ok:即d=5
->在C中,逗号表达式是不能作左值的,所以 “(a=1,b,c+1,d)=5;”将通不过编译。

推理的不错,但“%d\n”中“”应为""