c语言中intx=3;y=++x+(++x);printfy;的结果怎么算啊

我开始也是这样算的,但是答案x=10

第1个回答  2010-11-17
这是考验运算符优先级的题。尝试分析,有可能不对。

第一优先级是括号内的运算,所以先执行++x,即x=4,并将值4取出来;第二优先级是等号右边的++x,所以x=5,并将5取出来,最后执行加法,所以y=9,x=5。
第2个回答  2010-11-18
第一优先级是括号内的运算,所以先执行++x,即x=4;第二优先级是等号右边的++x,所以x=5,并将5取出来,注意此时x=5,所有所以y=5+5=10,x=5。本回答被提问者采纳
第3个回答  2010-11-18
#include "stdio.h"
int main()
{
int x=3,y;
y=++x+(++x);
printf("%d",y);
}

第一次++x x被赋值4 ++x+(x)
第二次运行++x x被赋值5 x+x
接着运算加法本回答被网友采纳

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个以上的都是这个规律

若有定义 int x=3,y;则执行语句y=(x++)+(x++)+(x++);y是多少?为什么
12。x++这个语句是先赋值,后加加。所以y = 3 + 4 + 5;执行完代码后,y = 12,x = 6

#include<stdio.h> main() {int x=3,y=
自增与自减运算符可在变量的左边(前缀)与右边(后缀),运算规则教材上有的,手机打字很麻烦

int x=y=3;t= ++x||++ y; y的值为什么等于3
因为你一开始声明的时候给y赋值就是3,这个代码里边整个过程也都没有修改过y的值,也没有对它重新赋值

c语言中定义int型变量和float型变量,会使y=++x*++x的结果不同,这是什么...
而对于整型数,两个操作数都为3,得到结果是9。由此分析,对于整型数‘++’操作的是同一个内存地址,而对于浮点型数则是直接把运算结果赋值给栈空间。以下是程序。\/\/testplus.c include <stdio.h> include <stdlib.h> include <string.h> int main(int argc,char **argv){ int x_i=1,y_i...

...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语言简单题
x%=y+z等价于x=x%(y+x),因为x%(y+x)=0.5,又因为x,y都为整形(int),所以x的值为0;第5题;在此语句中printf("#d&%d\\n",(++x+y++),z+2); #d&是字符输出,%d是输出第一个表达式(自左向右),即是(++x+y++),先执行自增运算符++x值为4,(原理看第一题的说明)...

一个关于C语言自增++运算的题目,高手进
回答:根据编译器而不同, 在你的编译器中应该是这样执行的: y=(++x)+(x++)+(++x); 因为第二个(x++)有括号,所以就求解x++再执行括号外面的+,结果也就是3+4+5=12 在VC中就不同

c语言中X=3,X++等于什么?
X=3,X++ 是由逗号组成的表达式,该表达式的值为3 但该表达式执行结束后,X的值就成了4。原因: 因为X++ 自增在后面,先将X的值作为表达式的值,然后X再自己增加一个。

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

相似回答