c语言 int y,x=3;y=(++x)+(++x); 则y=?

答案说此行完后x=5,y=10.
为什么?我怎么觉的y=9呢?

第1个回答  2011-03-09
这个运算是先执行两次++x,然后x就是5了吧!然后两个5相加,就是10了。同一个变量在一个公式中自加自减的都是先把变量值确定,然后再运算结果。我语言表达不清楚,就是这个意思,记好了就行了!
第2个回答  推荐于2018-03-19
执行后一个++x时,前一个也会执行一次。
先第一个 ++x执行,完了以后x = 4,然后第二个++x执行,x变成了5,此时第一个x也变成了5。追问

那要是改为(x++)+(x++)呢?答案又是多少?

追答

先用x,然后x才会执行++两次,所以y = 6 x还是等于5

追问

不对呀!按照书上的应该是7
y=7.x=5

追答

y是6,你如果有编译器的话,可以把程序跑下,看看结果。
我机器上安装的是vs2008,还有Dev-c++,跑的结果都是y = 6.

追问


现在真的好蛋疼啊。书上一个例题还带答案过程是7,但我用C++6.0跑出来的也是6.

追答

书上有时候也会有错误的。呵呵

本回答被提问者和网友采纳
第3个回答  2011-03-09
括号的优先级高。。。所以先计算两个括号里面的。。。

++x两次,所以x的值变为5.。。

y的值就应该是5+5=10

希望能帮到你。。。。
第4个回答  2011-03-09
y=10,先计算++x结果x=4,在++x结果x=5,然后y=x+x=10;
第5个回答  2011-03-09
楼上的说的已经很清楚了,不知道楼主明白了没有。

c语言 int y,x=3;y=(++x)+(++x); 则y=?
这个运算是先执行两次++x,然后x就是5了吧!然后两个5相加,就是10了。同一个变量在一个公式中自加自减的都是先把变量值确定,然后再运算结果。我语言表达不清楚,就是这个意思,记好了就行了!

x=3,y;y=(++x)+(++x)+(++x) y的值是多少?
所以 y++表达式的先取值,取值为2,再运算此时y的值变成了3;--x表达式先运算,x的值变为2,再取值,取值为2 2 == 2 所以表达式y++==--x的结果为true

int x=3; int y; y=(++x)+(++x)+(++x); printf("%d",y); 为什么结果会...
也就是y=(++x)+(++x)=5+5=10 y=(++x)+(++x)+(++x)+(++x)=5+5+6+7 2个以上的都是这个规律

C语言 X=3 Y=(++X)+(X++)+(++X) 答案是15怎么算?
X=3 Y=(++X)+(X++)+(++X)Y=15 解如下 1>++x 4 x 4 2>x++ 4 x 5 x++先赋值后自增,但是因为有括号,括号里面x变为5 3>++x 6 x 6 4+5+6=15

C语言 X=3 Y=(++X)+(X++)+(++X) 答案是15怎么算?
int X=3 Y=(++X)+(X++)+(++X)Y=15 解如下 1>++x 4 x 4 2>x++ 4 x 5 x++先赋值后自增,但是因为有括号,括号里面x变为5 3>++x 6 x 6 4+5+6=15

c语言 int y=0,x=3; y=++x*++x*++x;
执行过程 1、(++x*++x)++x 运算过程是先运算括号里面的,第一次++x,x=4,第二次++x,x=5 然后运算(5*5)*++x 2、(5*5)*++x时,先运算++x,x=6,此时运算结果为:(5*5)*6 原因程序先运算前++再将计算结果在做运算。由此等式可以写成[(1+x)*(1+x)]*(1+x)...

C语言中表达式执行 x=y=3;t=++x||++y;后y的值是多少
y的值是3,因为||运算在第一个操作数不为0的情况下不会计算第二个操作数,所以++y是不会执行的,使用y还是原来的3.

int x =3; int y=(++x)+(++x)+(++x); 如何求出x=6,y=18的求具体计算过程...
\/\/第一句不解释int x = 3; \/\/第二句,分步说明 int y = (++x) + (++x) + (++x); \/\/括号运算符优先级最高,先算括号内的三个 ++x, ++x表示先自加再运算,所以 \/\/++x 4 \/\/++x 5 \/\/++x 6 最终x值为6 \/\/得出: int y = 6 + 6 + 6 \/\/ +运算符为左结合运算符,...

int X=3,y=3 ,++x||++y 后y值是什么
int X=3,y=3 ,++x||++y 后y值是什么 3 由于++x=4为真,||运算不会执行后面的语言,所以++y并未执行,y还是=3

C语言中x=3;(++x)+(++x)=?
等于10 首先要明白++x的运算优先级高于+ 所以首先执行的是++x,++x 也就是4,5 而现在的X已经等于5 所以再执行X+X;也就是5+5 所以结果为10 希望能帮助你

相似回答