jmfs.net
当前位置:首页>>关于c语言问题:设x=4,y=(++x)+(++x);那么y的值等于的资料>>

c语言问题:设x=4,y=(++x)+(++x);那么y的值等于

首先++x这种东西,在同一句中最多使用一次,否则会出问题(涉及编译原理,讲不清楚) 此外,y=x++;相当于y=x;x+=1;即先执行完当前的一个语句(以逗号、分号为结束符的语句) 最后,自加、自减运算符在同一句内,永远不要使用两次及以上。 不要尝...

执行后一个++x时,前一个也会执行一次。 先第一个 ++x执行,完了以后x = 4,然后第二个++x执行,x变成了5,此时第一个x也变成了5。

x++是后置++,是先取x的值,参与运算,然后再把x的值加1 (x++)+y;等价于x+y x=2,y=4,x+y的值为6 如果是(++x)+y;,则值为7

#include void main(){ int x=2,y=3; //(1)先算x+y,值为5 //(2)然后算x*=5,即: x=x*5=10 x *= x+y; printf("x = %d\n",x);}

如果从编译器的角度来说: 1、-的优先级是4,=的优先级是14,所以先运算y-4的值; 2、相当于这样写 x=y-4; if(x) { } 3、通常不建议if(x=y-4)这么写程序,没有任何可读性 如果满意,请采纳

C语言的逗号运算符是从左到右运算的,结果是最右边一个表达式的值。 y=(x=3*5, // x 为 15x*4, // 这个值被丢弃x+15 // 15+15,这作为整个表达式的值,被赋给y。)

先说答案吧,应该是: x = 3; y = 9; 原理是,c++是按照运算符的优先级和结合性来决定运算的顺序的,“++”运算符的分为“前加”:++x和“后加”:x++;但是无论是前加还是后加,它的优先级都必乘法“*”的优先级高; 所以,应该先算2次++x,这时x = 3;...

#include void main() { int a=7; float x=2.5,y=4.7,r; r=x+a%3*int(x+y)%2/4; printf("%f\n",r); } 运行结果 2.500000

x+=x*=x+1是复合赋值表达式,右结合性,即从右往左运算。 x*=x+1等价于 x = x * (x + 1) 即 x = 4 * ( 4 + 1) = 20。注意,此时x已经是20了。 再执行x+=y,此时的y是x*=x+1的执行结果,即20。 x+=y等价于 x = x + y 即 x = 20 + 20 = 40

这是一个三目运算符,如果 --x 与 y++相等的话,把--x的值赋给a,否则,将++y的值赋给a; 在这里,--x是先对x进行自减1再执行语句,y是再执行完语句再执行y自加1,也就是说现在解析出来的表达式为 x - 1 == y ,后面同理!

网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com