黑马程序员技术交流社区
标题:
ios基础学习:C语言中的++a和a++的区别
[打印本页]
作者:
白月光
时间:
2014-5-20 14:48
标题:
ios基础学习:C语言中的++a和a++的区别
自增自减
1、++自增运算符:如a++,++a都等价于a = a + 1;
2、--自减运算符:如a--,--a都等价于 a = a -1;
虽然++a和a++等价的结果一样,但是运算过程确大不相同,以下举例说明:
#include <stdio.h>
int main()
{
//int m = 10, n1, n2;
//n1 = m++;先将m的值赋给n1,然后m再做自增运算,所以此时,n1=10,m=11;
//n2 = ++m ;先将m做自增运算,然后在将运算后的m值赋给n2,所以此时,n2=11,m=11;
int a = 10,b =10, c, d;
c = (a++) + (++a);
//由上例n1=m++,n2=++m,m++=11可得出c=10+12;分析:前面括号所得值为10,而前面括号中的a经过自增运算后a的值为11,然后赋值给后面括号中的a,后面括号中的a经过自增运算后a的值为12,后面括号最后赋值为12;
d = (++b) + (b++);
//由上例n1=m++,n2=++m,++m=11可得出d=11+11;分析:前面括号所得值为11,而前面括号中的a经过自增运算后b的值为11,然后赋值给后面括号中的b,后面括号中的b先将值赋给后面括号,所以后面括号的值为11;
printf("c=%d\nd=%d\n",c,d);
return 0;
}
复制代码
作者:
S捭K阖Y
时间:
2014-5-20 20:50
++a是先a=a+1然后再用a的值
a++是先用a的值再a=a+1
例如 int a=b=c=d=0;
b=++a; //b等于1,a等于1
c=d++ //c等于0,d等于1
作者:
白月光
时间:
2014-5-20 23:53
嗯嗯 简明扼要 :handshake
作者:
奇迹
时间:
2014-5-21 01:26
a++是a运算后加的、
++a是a加上后在做运算
作者:
yangying514
时间:
2014-5-23 08:51
记得刚学c那会,被这个问题弄的很头疼。。。
作者:
李稳
时间:
2014-5-23 14:08
本帖最后由 李稳 于 2014-5-23 14:10 编辑
1、a++ 先赋值后加;2、++a 先加后赋值。
作者:
chain
时间:
2014-5-23 22:05
我学这个内容的时候,是这样想的,++a是先自增一次再干其他事情,而a++是先干其他事情,在自增一次。
作者:
詹绪长
时间:
2014-6-1 18:53
我这个新手赶脚这样理解比较好,+在前就先加了再说别的,+ 在后就做完事情再加。
作者:
永远不会贬值
时间:
2014-6-1 19:54
一开始也是头晕,后来慢慢就明白了,用多了就明白了
作者:
但愿''专注..
时间:
2014-6-1 21:38
这个很好懂
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2