黑马程序员技术交流社区

标题: ios关于自增自减 [打印本页]

作者: hei军    时间: 2015-11-13 21:47
标题: ios关于自增自减
++i;和i++怎么这么长时间还是搞不懂求解?
作者: 触底反弹    时间: 2015-11-13 22:28
说一下我的理解。
一旦看见自增自减你就当作赋值运算好了,比如:i++
就相当于  int a = i++;//等于 int a = i;   +号在后面就先赋值后运算
而 ++i
就相当于 int a = ++i;//等于int  a = i +1; +号在前面就先运算后赋值

+号在前就先加1



你可以做一下这个题:
int main(int argc, const char * argv[])
{
    int b;
    int a = 5;
    b = ++a + a++;
   
    printf("b=%d, a=%d\n", b, a);
    return 0;
}

作者: 勇猛的小黑    时间: 2015-11-13 22:36
哎。我也搞不懂
作者: 沐小妖mavs    时间: 2015-11-13 22:55
加加在前面,先计算在赋值,加加在后面,先赋值在计算
作者: 蜗牛飞翔    时间: 2015-11-13 23:42
++a是a先自加在赋值,a++是先赋值在++
作者: sf1215225    时间: 2015-11-13 23:57
返回值和i的值不是一个,电脑是机器,你要以一个机器的眼光去看
作者: 能不能行    时间: 2015-11-14 22:09
其实挺好理解的 a++ a先参与所有的运算再自增 ++a先自增再参与运算
作者: 陌忆    时间: 2015-11-14 22:39
http://bbs.itheima.com/thread-260144-1-1.html   参考楼上的方法,然后弄懂我发的这道题你就明白了
作者: IT-capfer    时间: 2015-11-14 22:39
很简单,自己敲上三遍,看编译结果
作者: 大雕会飞    时间: 2015-11-14 22:56
观摩各路大神如何解释
作者: 黎明之前    时间: 2015-11-18 23:02
这个很简单,++i就是,在本次循环体中执行的时候都要当做i+1来使用。而i++就是在本次循环体的执行中,当做i(变)来使用。   至于结束完本次循环体之后,i值都+了1。    区别只在于本次循环体内i值得不一样




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