c语言中,增一运算,a++和++a的区别,为什么有的数a++了加1,有的不加1,有的++a却加了2

如题所述

a++这种形式是后置递增,++a这种形式是前置递增,,区别是,a++执行完操作后才加一,++a是自身先加一,然后执行相关操作,,举个例子:

int i=1,j,k;
j=1++;
k=++i;
cout<<i<<j<<k<<endl;
上边运行结果是:3 1 3,程序中i共自增了两次,所以是3,在j的赋值操作中,i先把值赋给j再自增,所以j是1,在k的赋值操作中,i先自增,这时i为3,然后把3赋给k,,
尽量使用++i,可以避免考虑执行操作时i的值,减少错误,,手打,望采纳,,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-12
你说的两种情况都不可能。a++和++a在独立表达式中效果是一样的,最后都使a增1。而在表达式中,a++取a的值参与运算,++a取a+1的值参与运算。追问

那是不是说,1+a++就等于1+a,++a+1就等于a+2?

追答

你问的是a++和++a还是1+a++和++a+1?而且我那“在表达式中,a++取a的值参与运算,++a取a+1的值参与运算”的表述已经回答了这个问题,没看懂?

第2个回答  推荐于2017-09-21
int a = 0;
a++:a的值更新为1,但是(a++)这个整体的值是a加1之前的值0,它相当于一个临时变量

int a= 0;
++a:a的值更新为1,(++a)这个整体的就是a本身,所以也是1本回答被提问者采纳
相似回答