作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 14:39:59
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)+(++x)+(++x)=19怎么解释
再答: 我实验了一下。 在(++x)+(++x)+(++x) 时候y19 x 7 在(++x)+(++x)+(++x)+(++x)时候是 y27 x 8 在(++x)+(++x)+(++x)+(++x)+(++x) 时候 y36 x 9 在(++x)+(++x)+(++x)+(++x)+(++x)+(++x) 时候 y46 x10 然后我有实验 在(++x)+(++x)+((++x)+(++x))+(++x)+(++x) 时候 y 47 x10 在 (++x)+(++x)+((++x)+(++x))+((++x)+(++x)) 时候 y48 x10 所以我想这个和运算符的 目数是有关系,+ 号是双目运算符。 所以在只有两个数相加的时候系统把两个操作数的++都处理完了 再处理+运算。 所以在算(++x)+(++x)时候是 y27 x 8的时候 先处理第一个加号, 得到的结果是 12+ (++x)+(++x) 然后处理第二个加号,结果是12+7+(++x) 然后处理第三个加号 结果是 12+7+8 = 27 此时 x= 8;其他以此类推; 而加了括号结果改变就比较好理解,括号优先级高些,先处理括号里面的,所以在括号里面的操作数一同被处理,得到了上面加了括号后的结果。 所以在其他位置加上括号,得到不同的结果也就比较好理解了。 这是我个人的理解,不一定都对,希望对你有帮助。