c***d 发帖数: 996 | 1 ☆─────────────────────────────────────☆
Foxwell (大熊星座) 于 (Mon Mar 5 23:02:56 2007) 提到:
const int i=125;
int *j = const_cast (&i);
(*j) = 256;
printf("%d %d\n", i, *j);
以上代码为什么输出的是:
125 256
而不是:
256 256
另外,i到底有没有分配空间?如果没有,(*j)志向的是哪里?
谢谢!
☆─────────────────────────────────────☆
Pontiff (树) 于 (Mon Mar 5 23:07:19 2007) 提到:
你把优化去掉看看?
第一个输出是125应该是constant propagation优化
i应该分配空间,因为需要保证有&i的操作语义
☆─────────────────────────────────────☆
Pontiff (树) 于 (Mon Mar 5 23:13:28 2007) 提到:
S |
|