黑马程序员技术交流社区
标题:
x++和!x++的区别?
[打印本页]
作者:
zx413331474
时间:
2014-12-24 20:21
标题:
x++和!x++的区别?
这两个有什么区别啊
作者:
sweet凌风
时间:
2014-12-24 20:32
一个是先加后再运算,另一个是先运算后加
作者:
joykerl
时间:
2014-12-24 20:56
:L:L:L:L:L:L:L:L:L
作者:
zx413331474
时间:
2014-12-24 22:25
初始化int x = 0;分析两个结果?
作者:
从今以后
时间:
2014-12-24 22:36
x++;
返回x,然后 x += 1;
!x++;
等价于!(x++);,返回x,值为0,!0 = 1,x+=1, x值最后变为1。
作者:
zx413331474
时间:
2014-12-25 00:34
x++;
返回x,然后 x += 1;
你的思路x++后返回x的值为x = 1;不是x + = 1吧,x + = 1后,x = 2;
!x++;
等价于!(x++);,返回x,值为0,!0 = 1,x+=1, x值最后变为1。
等价于!(x++);返回x,因为x为0,所以!x即为1,再x+=1不就等于2了?想不通啊
作者:
miaopf123
时间:
2014-12-25 07:35
1. b=a++; // 是 先把a赋值给b 即b=a; 然后再执行 a=a+1;
2. b=++a; // 是 先a=a+1;然后b=a;
作者:
miaopf123
时间:
2014-12-25 07:40
zx413331474 发表于 2014-12-24 22:25
初始化int x = 0;分析两个结果?
你得看 x++或者 ++x 前面是不是还有运算符 ;如果只是单纯的 x++ 或者++x 每执行一次就是自增1;
如果前面有的话例如 b=x++; 运行的结果则是b=0;x=1; 而b=++x; 运行的结果则是 b=1;x=1. 明白了吗?
作者:
zx413331474
时间:
2014-12-25 14:14
我问的是x++和!x++的区别,不是x++和++x的区别!
int x = 0;
int y = 0;
y = !x++;
x = x++;
printf(“%d,%d”,x, y);
分析结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2