黑马程序员技术交流社区

标题: a++和++a那个,有人能深入讲解下的吗? [打印本页]

作者: 达摩八戒    时间: 2014-7-15 20:41
标题: a++和++a那个,有人能深入讲解下的吗?
看了博客的文章,看了视频,还是稀里糊涂的, 现在是死记硬背下来的,但感觉还是没有彻底搞明白。囧。。。
作者: 丶白菜你个小番    时间: 2014-7-15 21:37
a反正是要加1,只是a++表达式的值为a,++a的表达式值为a+1
作者: 灰色头像    时间: 2014-7-15 21:47
a++,是先把a的值赋值给a++这个表达式后,a再自动加1。++a,是先把a的值加1后,再把a的值赋值给++a这个表达式!
视频里的a的值先给a++这个整体在运算,那么(a++)=10,在加1的话就是11。同理,++a就是12
b=10+12
作者: 斑马    时间: 2014-7-15 21:56
好像到后面的OC中,很少用到.....
作者: 此生逍遥    时间: 2014-7-15 21:57
+号在前面的是先加1在将a的值参与运算,+号在后面的是先将a参与运算,在然后加1
作者: caopengxu    时间: 2014-7-16 16:57
“++a”是先+1再 进行其他运算,“a++”是先让a进行其他运算再+1。
作者: 努力微笑    时间: 2014-7-16 17:04
“++a”先加后用,“a++”先用后加
作者: 云霄之上    时间: 2014-7-16 17:24
你只要记者看到a++的时候当前的这个a还是没有+1的那个时候的值 而++a则是此时a就是+1之后的值就行了
作者: yingzhuo1314    时间: 2014-7-16 17:24
a++先使用a的值再对其进行自加,++a则是先对a进行自加,在使用a的值,比如
  1. #include <stdio.h>
  2. void main()
  3. {
  4.         int a=4;
  5.         printf("%d\n",a++); //输出结果为4
  6. }
复制代码
  1. #include <stdio.h>
  2. void main()
  3. {
  4.         int a=4;
  5.         printf("%d\n",++a);//输出结果为5
  6. }
复制代码

作者: zhuiyi007    时间: 2014-7-16 20:20
在一条语句中,++a就是先将a的值加1后在执行后面的语句,而a++就是先执行完这条语句,再对a的值加1
作者: 火拳    时间: 2014-7-23 10:59
这个跟java里的一样,a++表示先赋值在加一,++a表示先加一,在赋值
作者: Jr_711    时间: 2014-7-23 16:52
(假设a初始值为5)

a++就是这次用的就是5,用完后给a加上1,下次使用a的值就是6

++a就是先给5加上1,这次使用的就是6,下次使用a的值是6


打个比方:

你拿到个篮子,根据不同要求数里面有几个杯子,篮子里原有5个杯子,

a++就是直接数,它就有5个,数完后你要往里面放1个杯子(等下个人来数时就是6个,然后他数完再往里放一个,以此类推。。。)

++a就是你拿到篮子后二话不说先放进去一个杯子,然后再数有几个杯子,这里就是6个杯子(等下个人来数也是先放进去1个杯子再数,就是7个,以此类推。。。)

你数的数就是这次使用的a++(或++a)的值,下个人数的数就是再次使用a++(或++a)时的值
作者: 枫·殇    时间: 2014-7-23 22:07
不能死记的,只要看++的顺序就好,在前面的就先进行。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2