求教,关于几道C语言的问题?

1、int x=9; 输出printf("%d\n",(x=5*6,x*4,x+5)); 为什么不是14而是35呢?
2、n和i是整型变量,表达式n=i=2,++i,i++的值为3。解释一下
3、int a=5;,表达式a++的值是5。解释一下

1.因为逗号时从左到右计算,x变成30。然后逗号连成的语句的值区最后一个,所以就是35了。
2.同上。++i以后,i变成3,而i++的意思是,先把i作为值,然后+1。
3.解释同2的后半。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-01
1.为什么是35啊,难道不是30么= = 好吧我真不知道

2.开始i=2。然后i=++i,即i自增1后再赋给i,此时i=3。再然后i=i++,【先赋值后自增】,自增后没有再重新赋值给i,所以i还是3。n不用解释了吧= =

3.和刚才那里一样,因为自增后没有重新赋值,所以a不变
相似回答
大家正在搜