c语言中自曾自减怎么运算

发布时间:2024-05-17 11:27 发布:上海旅游网

问题描述:

在turbo c 环境下运算
int a=5, b
b=(a++)+(++a)+(++a)
b=(++a)+(a++)+(a++)
a=(a++)+(++a)+(++a)
a=(++a)+(a++)+(a++)
都看糊涂了
从右至左的运算
到底该怎么加
前面两句和后面两句不同结果..怎么算两个不同结果..
b=19
第二个呢.怎么算
我在电脑上运算N次..可是结果老是与我算的不同..
规律是什么样的..++a直接加1
a++运算完后的结果加1吗
b=
a=
怎么算这两个结果..
可以告诉我吗

问题解答:

运算优先级的问题,++a和a++都是自加一,但是“=”的运算优先级要高于++。

同意楼上的,永远不要去做这类自增自减的题目,对编程没有任何帮助.

前置的放前面,后置的放后面
b=(a++)+(++a)+(++a)
转换为
++a;
++a;
b=a+a+a;
a++;

b=(a++)+(++a)+(++a)
b=(++a)+(a++)+(a++)
a=(a++)+(++a)+(++a)
a=(++a)+(a++)+(a++)
永远不要写这样的式子,也不要在函数调用中出现类似的式子。

比如printf("%d %d %d", a++, ++a, a++)等。

这些都是C/C++标准中未定义的行为。不同的编译器会产生不同的结果,当然只要编译器愿意,它也可以选择罢工,或者遇到这样的式子时弹出一个小游戏逗你玩。

热点新闻