C语言中 int x=1,y;y=++x*++x怎么算

如题所述

++x返回的是x自身的值,所以:
y = ++x * ++x;
先计算左边的++x,再计算右边的++x,结果x为3;
y = 3 * 3 = 9;

不排除编译器造成的一些困扰。
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-07
算术运算符是自左向右计算,先算++x所以
y=(++x)*(++x)
=2*2
=4
第2个回答  2009-09-07
此句等同于以下:
++x; //x自加1为2
++x; //x自加1为3
y=2*3; //y为6
第3个回答  2009-09-07
++x说明x的值,但计算y值时,x为1+1.
第4个回答  2009-09-07
y=(x+1)*(x+1);

C语言中 int x=1,y;y=++x*++x怎么算
y = ++x * ++x;先计算左边的++x,再计算右边的++x,结果x为3;y = 3 * 3 = 9;不排除编译器造成的一些困扰。

int x=1,y;y=++x*x++;问x,y等于多少
y = ++x * x++;第一步进行x+1并将此值赋于x=2,后面者x为2先与前面的2进行运算并赋于y=2*2,再x+1=3 结果:x = 3;y = 4;

c语言问题求解释, 已知:int x=1,y;则y=++x*++x的结果为什么?
现在你只有一个x变量(这个关键,就一个。),而这个题中出现了两次++x,第一次x变成了2,第二次x变成了3,自然x的目前值就是3喽,那么3x3自然就得9了。

intx=1,y;则y=++x*++x的结果是多少?
解析:(1) 如果是为了考试(计算机二级),请直接放弃此题。不在乎这两分。(2) 如果是为了毕业后从事编程工作,请更迅速地放弃此题。因为,现实中,从来没有人这样写代码。你胆敢这么些,肯定会被头头骂。(3) 你只需知道,i=i+1。(4) 你可能会质疑我说的话。但是,毕业后,你会迅速发现,它...

...void main() { int x=1,y; y=++x*++x; printf("%d\\n",y); }_百 ...
1。i-- i 参与运算后,i 的值再自减 1。解答问题:x=1为初始化值.y=++x * ++x;第一个++x, x=2;第二个++x, x=3; 同样道理 第一个++x 也=3; 因为x的内存地址不变.第二个++x加了1后=3.第一个++x也会改变自身的值.所以:结果=9 在visual C++6.0编译后结果=9 ...

C语言float x=1,y;则:y=++x*++x的结果是?最好有过程?谢谢
先说答案吧,应该是:x = 3; y = 9;原理是,c++是按照运算符的优先级和结合性来决定运算的顺序的,“++”运算符的分为“前加”:++x和“后加”:x++;但是无论是前加还是后加,它的优先级都必乘法“*”的优先级高;所以,应该先算2次++x,这时x = 3;然后,再算乘法,因为这时x...

C语言的这段代码“y=++x*++x;”怎么理解?谢谢啦
y=++x*++x;这个表达式是一个未定义行为,其结果是不可知的,取决于编译器。在两个顺序点之间多次修改同一个对象的值,将会产生未定义行为。这样的题目本身就是没有意义的。

...main() { int x=1,y; y=(++x)*(++x); printf("x=%d,y=%d",x,y...
这个问题在不同的编译系统下,结果可能不同。在VC下,x=3,y=9。

c语言y=++x*++x怎么算
这是一个UB操作,在不同的编译器上可能有不同的结果,取决于编译器的压栈顺序。如果每处理完一个操作数就压栈,得到的结果是(x+1)(x+2);如果处理完左右操作数再压栈,得到的结果是(x+2)²。不要研究这样的语句,编程中也应该尽量避免这样的语句。

y=++x*++x的求解过程
如果x=1;1、++x,x=2 2、++x,x=3 3、经过上面两步,x=3 然后就是3*3=9;

相似回答
大家正在搜