这一小句C语言不知道是什么意思

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:48:47
main0
{ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2); }
A.3 4 B. 4 2 C. 4 3 D. 3 3

答案应该是c
++x和x++的不同在于,++x是先将x加1,再执行其所再语句,而x++则是先执行所在语句,再将x加1,所以上面的语句,执行是先将x加了1,而y没有加,然后输出,则输出的结果就是4,3,另外在该语句中只有两个%d,则语句就会在后面的变量中从前往后依次输出两个变量,如果想要输出z
则语句为:printf("%d,%d,%d,"++x,y++,z+2)

答案为:D
解释如下:
首先(++x,y++)是一个逗号表达式,返回值为第二个式子的值即y++的值,这里还涉及到++运算,++再前表示先进行加运算,++再后是用值再计算,所以(++x,y++)运算后为(4,3),它的值即为第二个式子的值,也就是3,z+2就没什么可说的了,1+2的问题,呵呵也就是3,那么答案就为D选项。

答案D的这句谁能再解释清楚点(++再前表示先进行加运算,++再后是用值再计算)
谢谢
先运算在增1不懂呀

在printf语句中.后面的那个(++x,y++),是个逗号表达式...整个表达式的值是第二个表达式的值.也就是printf(%d,%d\n",y++,z+2);
选D
至于先运算再增1.你不要管那么多就把它当成一条定理就好了.
遇到++在后面的话你就先用它然后再给那个值加1就好了!

++再前表示先进行加运算:
先增1再运算。
++再后是用值再计算:
先运算再增1

(++再前表示先进行加运算,++再后是用值再计算)
打个比喻,++前,你先吃饭后洗手。
++后,你先洗手后吃饭。(……要不然反过来……)
洗手就是要加的东西(值)。