C语言int a=0;a=a++;为什么打印后a=1

2025-03-10 11:59:00
推荐回答(5个)
回答1:

a++是先使用a,然后a的值才加1,++a就是先a+1,后使用a,这样a就是2了,希望能解决您的疑惑

回答2:

a++;不可以
a是首地址不是指针 不能可赋值的左值 不能用++符对其操作
但是a+1这样的表达是可以了 因为这里a的值作为+的一个操作数但是a本身的值是没有改变的

回答3:

int b,a=0;b=a++;这样的话结果就是b=0了

a=a++;
相当于:
a=a; //此时a还是0
a++; //此时a自增1
a=++a
相当于:
++a; //此时a先自增1
a=a; //a为1

回答4:

a=a++;
相当于:
a=a; //此时a还是0
a++; //此时a自增1
a=++a
相当于:
++a; //此时a先自增1
a=a; //a为1

回答5:

a++后肯定a=1了呀,这等价于a+=1;或者a=a+1