BoNeShAkEr丶
2017-05-22 18:18
#include <stdio.h>
int main()
{
int a = 100;
printf("x=%d\n",a++);//先取值再计算,输出100,计算后a=101
printf("x=%d\n",++a);//之前的a=101再计算+1后取值a=102
printf("x=%d\n",--a);//先运算再取值a=101
printf("x=%d\n",a--);//先取值再运算,输出101,a变成100
printf("x=%d\n",a+1);//a=100+1=101,注意这里不改变a的值
printf("x=%d\n",a);//由第8行a=100得
return 0;
}
为什么后面几行的取值都为上一个语句的值 而不是一开始的100?
因为a++等于a=a+1,实质是已经通过运算给a重新赋值了
x += a++;
先 x = x+a;
再a++
等于8
所以
x = 8换行
同理x += a++;
先 x = x + a;
再a++
x = 4 换行
C语言入门
926212 学习 · 20797 问题
相似问题
回答 1
回答 2
回答 3
回答 1
回答 3