C语言下面这个程序为什么等于6啊?我算的是2

2025-06-21 12:16:18
推荐回答(3个)
回答1:

这宗代码的运行结果肯定是6而不是2。你算出来是2是因为把k++;错归为for(j=0;j<3;j++)的体了,实际上k++;是for(i=0;i<3;i++)体,就是说要等for(j=0;j<3;j++)循环结束后才执行k++;。
若帮助了你,请采纳。

回答2:

m = (k += i *= k++); 是未定义行为。
整条语句只有一个顺序点,但是出现了两次对k有副作用的修改,其结果是不确定的。

回答3:

前两个for循环完成以后,a[3][3]={{1,2,3}, {2,3,1}, {3,1,2}}。最后一个for做的是s=1+3+2=6