c语言中,增一运算,a++和++a的区别,为什么有的数a++了加1,有的不加1,有的++a却加了2
3个回答
展开全部
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的值,减少错误,,手打,望采纳,,
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的值,减少错误,,手打,望采纳,,
展开全部
你说的两种情况都不可能。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的值参与运算”的表述已经回答了这个问题,没看懂?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a = 0;
a++:a的值更新为1,但是(a++)这个整体的值是a加1之前的值0,它相当于一个临时变量
int a= 0;
++a:a的值更新为1,(++a)这个整体的就是a本身,所以也是1
a++:a的值更新为1,但是(a++)这个整体的值是a加1之前的值0,它相当于一个临时变量
int a= 0;
++a:a的值更新为1,(++a)这个整体的就是a本身,所以也是1
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询