小白一键重装系统死机:C语言小小奇怪的问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 16:27:13
int x,m;
x=3;
m=(i++)+(++i)+(i++);
后~为什么m会变成12啊
错了
是m=(x++)+(++x)+(x++);

你用的是VC++编译器吧!?
因为你写的是一个表达式,在表达式中有个先自增运算++x,所以此时x的值为4,然后做加法运算,m=4+4+4=12,如果你再输出x的值的话x=6,因为你这个表达式中还有两个后自增运算x++,所以最后x的值为6.
建议你不要太深究C语言中这样的题,没有人会在程序中写这样的代码,如果是考试的话那就另当别论了,还有请教一下老师,你们考试的标准答案是根据那个编译器而定的.因为单对C语言来讲这类题,不同的编译器会有不同的答案!

同意楼上的说法.

++的运算比+的优先级高.

大哥,这个程序是错的
你这里i是什么啊
都没定义
还没初值

哦了!