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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <iostream>
#include<stdio.h>

int main(int argc, const char * argv[]) {
    int a=10;
    int b=(a++);
   
    printf("%d\n",b);
    int c=(++a);
   
   
    printf("%d,%d,%d\n",a,b,c);
    return 0;
}
这个测试你可以得到结果。。。
10
12,10,12
也就是第一个输出时a并不是11是因为要先调用a之后再给+1
下面c=12是因为a是不是被自加了啊=11了吧再执行++a就是先加一再输出。。。这样说还不明白。。。我也没办法

16 个回复

倒序浏览
a++ 是先赋值给变量a再+1 , ++a是a先+1 然后赋值给变量对吧
回复 使用道具 举报
ios专用 发表于 2015-5-9 23:28
a++ 是先赋值给变量a再+1 , ++a是a先+1 然后赋值给变量对吧

a++是先调用a,比如前面给a赋值是10现在你要输出a++那么是先输出a的值之后再进行运算。即输出10之后a++得到11再将11赋值给a,之后的a就是11.。。
回复 使用道具 举报
这个问题最大的问题在于编译器,编译器不同结果有差异 。
回复 使用道具 举报
哦,这么回事丫
回复 使用道具 举报
不是不理解,只是被编译器给忽悠了,惭愧惭愧
回复 使用道具 举报
哦,原来是这样啊,学习了。
回复 使用道具 举报
彭越 中级黑马 2015-5-10 14:35:08
8#
++a和a++单独使用没效果,反之a++ 是先赋值给变量a再+1 , ++a是a先+1 然后赋值给变量对吧
回复 使用道具 举报
彭越 发表于 2015-5-10 14:35
++a和a++单独使用没效果,反之a++ 是先赋值给变量a再+1 , ++a是a先+1 然后赋值给变量对吧 ...

可以这样理解
回复 使用道具 举报
自增自减
回复 使用道具 举报
学习了学习了
回复 使用道具 举报
了解了,谢谢
回复 使用道具 举报
刚看完这部分 感觉挺好懂的
回复 使用道具 举报
++a和a++的根本区别是,++a是先变后用,a++是先用后变,记住这个就会游刃有余,万变不离其宗嘛
回复 使用道具 举报
++a 与 a++ 单独用的时候,没区别 都是对a加1  。
不过要是要赋值给其他变量的话,就有区别了。
++a 是先把a加1,然后赋值给变量,a++是先赋值给变量再把a+1。这两种方式对a最后的值没有影响,a都会加上1,有影响的只是被赋值的那个变量。
回复 使用道具 举报
好像明白了那么一点
回复 使用道具 举报
为什么你们技术分都那么高呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马