关于i++问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:23:43
main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
}
输出答案是8 7 7 8
为什么是8 7 7 8 TC中是右向左求值i--为什么等于8
i++为什么等于7 --i为什么等于7 ++i为什么等于8
请大虾帮我解释下
是不是我说的不清楚 还是楼下2位脑残吃饱没事做还是一点都不懂C语言进来乱搞啊 我的意思是说i--是如何得到8的 高手懂的来 我就郁闷了2楼跟着一楼搞脑残

首先:i++是先使用后加减,也就是说,先输出i的值,然后i再加减
++i是先加减,后使用,也就是说,先i加减,然后输出i的值

再次printf语句中,右边的表达式是从右向左运算的,也就是说
先算i--(表达式值是8,然后i变成7),然后i++(表达式的值是7,然后i变成8),然后--i(i先变成7,然后表达式的值就是i的值7),最后算++i(i先变成8,然后表达式的值就是i的值8)。

接下来就清楚了,输出顺序是
printf("%d\n%d\n%d\n%d\n",++i,--i,i++,i--);
就是8 7 7 8

这是一个谜,谜也是一种文化!

因为所以科学道理。总之就是没道理解释。。└(^o^)┘