返回信息流☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 13:52:55 2012) 提到:
int j, q;
j = 5;
q=(++j)+(++j); cout << j << " " << q << endl; // 7 14
j = 5;
q=(++j)+((++j)+(++j)); cout << j << " " << q << endl; // 8 22
j = 5;
q=(++j)+(++j)+(++j)+(++j); cout << j << " " << q << endl; // 9 31
我判断应该是因为压栈的顺序问题导致的这个结果,求详细解释~
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Thu Apr 12 14:03:56 2012) 提到:
这种问题已经有n个帖子了 简单说来就是没有答案 没有任何机制保证顺序 换个编译器又是个结果
【 在 crescentstar 的大作中提到: 】
: [code=c]
: int j, q;
: j = 5;
: ...................
-
本文通过BYR Android客户端2.0发布
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 14:04:23 2012) 提到:
我这不近几天才来这个版么~~~
【 在 purevirtual 的大作中提到: 】
: 这种问题已经有n个帖子了 简单说来就是没有答案 没有任何机制保证顺序 换个编译器又是个结果
: -
: 本文通过BYR Android客户端2.0发布
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 14:09:18 2012) 提到:
再问下。
我看到一个运算法优先级列表:pre-increment ++ 大于 post-increment ++ 大于 赋值运算符 =
以下代码:
int i = 3;
int j = i++;
一眼可知j=3,但如果依照运算符优先级,为什么不是 post-increment ++ 比 = 先执行呢?
【 在 purevirtual 的大作中提到: 】
: 这种问题已经有n个帖子了 简单说来就是没有答案 没有任何机制保证顺序 换个编译器又是个结果
: -
: 本文通过BYR Android客户端2.0发布
☆─────────────────────────────────────☆
shenlei (我爱果子|[路]|天山南北|潇湘隐士) 于 (Thu Apr 12 14:10:52 2012) 提到:
刚来也可以瞅瞅置顶呵呵...
【 在 crescentstar 的大作中提到: 】
: 我这不近几天才来这个版么~~~
:
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 14:11:53 2012) 提到:
嗯。去瞅一遍~~~
【 在 shenlei 的大作中提到: 】
: 刚来也可以瞅瞅置顶呵呵...
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Thu Apr 12 14:38:08 2012) 提到:
那是因为i++的返回值是i
优先级只是决定执行的顺序而非返回的结果
ps:我猜你是学java的而不是一开是学纯c的
【 在 crescentstar (crescent | cre) 的大作中提到: 】
: 再问下。
: 我看到一个运算法优先级列表:pre-increment ++ 大于 post-increment ++ 大于 赋值运算符 =
: 以下代码:
: ...................
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Thu Apr 12 14:39:08 2012) 提到:
我表示末尾的“呵呵”很有喜感
【 在 shenlei (我爱果子|[路]|天山南北|潇湘隐士) 的大作中提到: 】
: 刚来也可以瞅瞅置顶呵呵...
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 14:51:51 2012) 提到:
偷偷告诉你,本科毕业后VC我都不知道怎么建工程。
【 在 purevirtual 的大作中提到: 】
: 那是因为i++的返回值是i
: 优先级只是决定执行的顺序而非返回的结果
: ps:我猜你是学java的而不是一开是学纯c的
: ...................
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Thu Apr 12 14:54:55 2012) 提到:
研究生很多跨专业考过来的很多也是如此,并不能说明啥
【 在 crescentstar (crescent | cre) 的大作中提到: 】
: 偷偷告诉你,本科毕业后VC我都不知道怎么建工程。
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 14:57:22 2012) 提到:
说明我学的太烂>_<。
【 在 purevirtual 的大作中提到: 】
: 研究生很多跨专业考过来的很多也是如此,并不能说明啥
:
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Thu Apr 12 15:02:55 2012) 提到:
这 有心学,永远不会太晚
【 在 crescentstar (crescent | cre) 的大作中提到: 】
: 说明我学的太烂>_<。
☆─────────────────────────────────────☆
buptrh (emi大婶) 于 (Thu Apr 12 15:03:06 2012) 提到:
偷偷的我们都看见了[ema28]
【 在 crescentstar 的大作中提到: 】
: 偷偷告诉你,本科毕业后VC我都不知道怎么建工程。
:
☆─────────────────────────────────────☆
crescentstar (crescent | cre) 于 (Thu Apr 12 22:36:29 2012) 提到:
再求一个题吧。关于 ++a 和 a++ 我已经理解的差不了了。 ++a 返回引用,是一个左值。 a++ 返回一个临时变量,为 const,是右值。
但我还是不是很懂以下代码:
int a, b;
a = 5;
a = a + (a++);
cout << a << endl; // 11
a = 5;
b = a + (a++);
cout << b << endl; // 10
为什么我觉得都应该是11呢。。。>_<
☆─────────────────────────────────────☆
purevirtual (杨无敌|SSE|本命年) 于 (Fri Apr 13 09:26:52 2012) 提到:
你还是在web下看一下这个版吧 版面上另外一个帖子就是这个问题
简单说来:就是这样的
第一个式子等价于: a=a+a; a++;
第二个式子等价与: b=a+a; a++;
所以a=11;b=10;
【 在 crescentstar (crescent | cre) 的大作中提到: 】
: 再求一个题吧。关于 ++a 和 a++ 我已经理解的差不了了。 ++a 返回引用,是一个左值。 a++ 返回一个临时变量,为 const,是右值。
: 但我还是不是很懂以下代码:
: int a, b;
: ...................
这是一条镜像帖。来源:北邮人论坛 / cpp / #61509同步于 2012/4/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[合集] 关于++的一个小问题~
shenlei
2012/4/13镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。