c语言 多个++运算符

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:25:37
int x=3,y;
y=(++x)+(++x)+(++x);
用的VC++6.0
结果是16 不明白怎么运行的 求助啊 在线等
我理解的是:
++x;
++x;
++x;
y=x+x+x
最后结果为18

tc2.0运行的结果是18

编译器问题.

不要这样写了.

只有出考试题的人才这样写来考学生的.

y=(++x)+(++x)+(++x);
++x;
++x;
y=x+x;
y+=(++x);
其实是C++每次执行一运算都要复值,除了++X;
你理解是按照数学方式理解的

5+5+6
如果
(++x)+(++x)+(++x)+(++x)
结果是23了
5+5+6+7
个人统计结果
仅供参考 参考

#include <iostream>
using namespace std;
int main()
{
int x=3,y=3,z=3,a,b,c;
a=(++x);
b=(++y)+(++y);
c=(++z)+(++z)+(++z);
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
return 0;
} 上面这个程序你试下,结果是4 10 16;
这个是编译器的问题。对于自加自减运算,编译器的运算方式很“奇特”,要尽量避免歧义。 如果换成 (x++)+(x++)+(x++),运行结果是9,而不是12!
运用的时候只能是避免歧义,你那样写“有歧义”。成熟的程序员不会那样写的