【C语言】for语句里面的逗号表达式,怎么算啊?

来源:百度知道 编辑:UC知道 时间:2024/06/07 09:50:25
int k,j,s;
for(k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++) s+=j;
}
printf("%d\n",s);

输出结果是10
弄不明白
怎么算的啊?

这应该是当k=4时的结果,因为要对s赋值,所以k=2是没有用的,然后k=k+2=4,
s=1+4=5;s=5+5=10,所以s=10

在第一层for()循环里面,每次进入for()循环S都被初始化为1,所以 S的值为最后一次第二层循环后的值,最后一次进入第二层循环是k=4
第一次k=2,k++两次k=4,此时进入第二层循环
s=1+4+5;
最终s=10
----------------------------------------------------------
逗号表达式就是依次计算值就是了,最终值为逗号表达式的最后后面一个值
如:

逗号表达式是有值的,这一点是语句所不能代替的。逗号表达式的值为第n个子表达 式的值,即表达式n的值。例如:
int a,b,c,d;
d=(a=1,b=a+2,c=b+3);
cout<<d<<endl;
输出结果为:
6