4 回答

TA贡献5条经验 获得超0个赞
#include <studio.h>
int main()
{
int a=100; //a=100
printf("%d\n",a++); //先显示输出a的值(100),然后计算a=a+1 =101
printf("%d\n",++a); //先计算a=a+1=101+1=102,然后显示输出a的值(102)
printf("%d\n",--a); //先计算a=a-1=102-1=101,然后显示输出a的值(101)
printf("%d\n",a--); //先显示输出a的值(101),然后计算a=a-1=101-1=100
printf("%d\n",a+1); //显示输出a+1的值(100+1=101),注意,a值不变还是100
printf("%d\n",a); //显示输出a的值(100)
return 0;
}
a++ a-- 先用再计算赋值
++a --a 先计算赋值再用

TA贡献71条经验 获得超52个赞
a++的意思是先调用a然后a在加一(调用的时候a还没有加一) ++a的意思是a先加一,在调用(调用a的时候a已经加一了)
a--和--a同上
第一个print(a++) 输出100 先输出a(a此时为100),然后a在加一 ,即 a=100+1=101;
第二个print(++a) 输出102 a先加1 即 a=101+1=102;然后输出a(此时a为102)
其他同上

TA贡献5条经验 获得超4个赞
我之前也没明白,
我觉得你跟我是一样的情况
就是没有明白其实下一行输出中的a
其实是上一个语句执行完的结果
例如 printf("%d\n",++a);
这里的a不再是初始值100了
而是进行a++之后的101,
所以再执行++a的时候,不是取值100+1
而是a++之后的101+1=102。
这一种情况你弄明白之后,
下面的几条应该就都明白了

TA贡献883条经验 获得超454个赞
自增自减涉及到很多内容,课程中都没有讲明白。
我在老区有一个详细回答,请看这里 http://www.imooc.com/qadetail/83948
- 4 回答
- 0 关注
- 1283 浏览
添加回答
举报