首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

win-tc中从增运算符的疑问

2012-07-29 
win-tc中自增运算符的疑问int a1,b1,e1,f1int c(a++)+(a++)+(a++)int d(++b)+(++b)+(++b)printf(

win-tc中自增运算符的疑问
int a=1,b=1,e=1,f=1;
  int c=(a++)+(a++)+(a++);
  int d=(++b)+(++b)+(++b);
  printf("%d %d %d %d %d %d\n",a,b,c,d,(e++)+(e++)+(e++),(++f)+(++f)+(++f));

输出结果是
4 4 3 12 6 9

请问为什么
c与(e++)+(e++)+(e++)不相等
d与(++f)+(++f)+(++f)不相等


[解决办法]
取决于编译器实现,属于未定义行为。
[解决办法]
不要在同一语句中,对同一个变量使用两次或以上次的++/--,因为这是标准未定义的行为,不同的编译器有不同的结果。

热点排行