急急急求大神
为什么printf("%d\n",a+1);不改变a的值
为什么printf("%d\n",a+1);不改变a的值
2016-07-18
#include <stdio.h>
int main()
{
int a = 100;
printf("x=%d\n",a++);//先取值100 下一段再运算+1。所以这段的 答案是100
printf("x=%d\n",++a);//先运算上一段剩下的(100+1)在运算这一段的a+1,所以公式是(100+1)+1=102,答案是102
printf("x=%d\n",--a);//先运算在取值(-1)+102=101 答案是101
printf("x=%d\n",a--);//先取值 101 再下一段运算101 -1 所以这段 答案是101
printf("x=%d\n",a+1);// 先运算上一段剩下的101-1 在运算这一段 ,所以公式是(101-1)+1=101 答案是101 注意;这里并不改变a的值,也就是说这一段是单纯的+1并不影响第8段运算完的结果a=(101-1),所以a还是100 然后在这段中+1
printf("x=%d\n",a);//第9段说明a还是100
return 0;//
} /* 5. 100
6. 102
7. 101
8. 101
9. 101
10. 100 */
举报