为了账号安全,请及时绑定邮箱和手机立即绑定

搞不懂 自增 增哪了

单独写一个

#include <stdio.h>

int main()

{

    int a = 100;

    printf("a=%d\n",a++);

return    0

}                  结果还是100    说好的自增呢   不是说

a++还是++a都等于 a=a+1吗  既然a得值是100  结果不应该是a=100+1    所以 a=101的吗

正在回答

3 回答

a++ 是取值后在运算 所以 a=100 ,

1 回复 有任何疑惑可以回复我~
#1

qq_慕九州8513951

但是这里输出的不是a++的值吗?为什么还是a的值,求指导
2019-01-11 回复 有任何疑惑可以回复我~
#2

qq_慕仰3335730 回复 qq_慕九州8513951

先取值在运算,第二次表达式中a的值才为101,第一次的取值还是不变的,为100
2019-01-23 回复 有任何疑惑可以回复我~

例如:C语言中a=1,a=a+++1,a+++1这两个有什么区别,前者值是3,后者是2

a=a+++1:先a++,a变为2 (即这个a++完了以后,a已经变成了2),然后开始2+1,然后再将2+1赋给a;
而a+++1:则是先a++,即a变成了2,然后加1,因为加1后并没有赋值给回a,所以a还是2。

因为你的表达式中a没有将取得的值再一次赋值给回a,但如果你是++a,那么程序中的结果就是101了

2 回复 有任何疑惑可以回复我~

首先a++是输出a=100在加1,所以第一个结果是100,但运行下条语句时a的值已经是101了

7 回复 有任何疑惑可以回复我~
#1

qq_精慕门0566073

恍然大悟,谢谢
2019-02-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926206    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

搞不懂 自增 增哪了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信