A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hei军 中级黑马   /  2015-11-13 21:47  /  1693 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

++i;和i++怎么这么长时间还是搞不懂求解?

10 个回复

倒序浏览
说一下我的理解。
一旦看见自增自减你就当作赋值运算好了,比如: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;
}
回复 使用道具 举报
哎。我也搞不懂
回复 使用道具 举报
加加在前面,先计算在赋值,加加在后面,先赋值在计算
回复 使用道具 举报
++a是a先自加在赋值,a++是先赋值在++
回复 使用道具 举报
返回值和i的值不是一个,电脑是机器,你要以一个机器的眼光去看
回复 使用道具 举报
其实挺好理解的 a++ a先参与所有的运算再自增 ++a先自增再参与运算
回复 使用道具 举报
陌忆 中级黑马 2015-11-14 22:39:37
8#
http://bbs.itheima.com/thread-260144-1-1.html   参考楼上的方法,然后弄懂我发的这道题你就明白了
回复 使用道具 举报
很简单,自己敲上三遍,看编译结果
回复 使用道具 举报
观摩各路大神如何解释
回复 使用道具 举报
这个很简单,++i就是,在本次循环体中执行的时候都要当做i+1来使用。而i++就是在本次循环体的执行中,当做i(变)来使用。   至于结束完本次循环体之后,i值都+了1。    区别只在于本次循环体内i值得不一样
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马