c语言中怎样解释x=4,y=(++x)+(++x);结果y=12

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/25 18:03:32
c语言中怎样解释x=4,y=(++x)+(++x);结果y=12

c语言中怎样解释x=4,y=(++x)+(++x);结果y=12
c语言中怎样解释x=4,y=(++x)+(++x);结果y=12

c语言中怎样解释x=4,y=(++x)+(++x);结果y=12
我把你的这个小程序运行了一下,结果确实是12,当我输出x的时候发现x的值是6 .
所以我是这样理解的,++x的作用是让数字x先自加一再在语句中被使用.
而y=(++x)+(++x); 这个语句中x被自加了两次,而只有一个语句,也就是说在运行到分号的时候 x的值是6,那么系统在执行y=(++x)+(++x); 这个时候 认为y = 6+ 6; 结构是等于12.

x自己先运算为6,最后带入y=x+x=12.

这与C语言的操作符的优先顺序和括号的结合律有关:
1.同一级运算按照从左到右的顺序依次进行
2.括号优先
3. ++x运算将x值加一然后返回x值

所以你这个表达式的运算顺序为:
1. x = 4
2. 运算左 (++x) 导致 x = 5 ,且 (++x) 变为 (x)
3. 运算右 (++x) 导致 x = 6,且 (++x) ...

全部展开

这与C语言的操作符的优先顺序和括号的结合律有关:
1.同一级运算按照从左到右的顺序依次进行
2.括号优先
3. ++x运算将x值加一然后返回x值

所以你这个表达式的运算顺序为:
1. x = 4
2. 运算左 (++x) 导致 x = 5 ,且 (++x) 变为 (x)
3. 运算右 (++x) 导致 x = 6,且 (++x) 变为 (x)
4. 此时运算 (x) + (x) ;而此时 x = 6; 因此 y = 12

收起