avatar
c*a
1
const int i = 5;
const int* p = &i;
int *q = const_cast(p);
*q =4;
int array[i];
那么 i 是 多少, array 长度是多少?
avatar
c*a
2
你找个机器编译一下试试不就知道了。

【在 c**a 的大作中提到】
: const int i = 5;
: const int* p = &i;
: int *q = const_cast(p);
: *q =4;
: int array[i];
: 那么 i 是 多少, array 长度是多少?

avatar
t*t
3
哦, 看错了, 以为你用的q
那么, 结果是undefined

【在 c***a 的大作中提到】
: 你找个机器编译一下试试不就知道了。
avatar
c*a
4
为啥是 undefined?
compile 不可能查出来 q 改了 i 的值。。。
array[i] 的 i 必须是 complie time known, 那时 是 5
所以 ,i 是 4, array 长 5.

【在 t****t 的大作中提到】
: 哦, 看错了, 以为你用的q
: 那么, 结果是undefined

avatar
t*t
5
改const就是undefined, 程序某处undefined那整个程序都undefined

【在 c**a 的大作中提到】
: 为啥是 undefined?
: compile 不可能查出来 q 改了 i 的值。。。
: array[i] 的 i 必须是 complie time known, 那时 是 5
: 所以 ,i 是 4, array 长 5.

avatar
c*a
6
强。。。

【在 t****t 的大作中提到】
: 改const就是undefined, 程序某处undefined那整个程序都undefined
avatar
L*r
7
hehe, 你还在这。

【在 t****t 的大作中提到】
: 哦, 看错了, 以为你用的q
: 那么, 结果是undefined

avatar
T*9
8
const char *p进行(char*)p好像也是undefined behavior?

【在 t****t 的大作中提到】
: 哦, 看错了, 以为你用的q
: 那么, 结果是undefined

avatar
t*t
9
这个好象是可以的

【在 T*****9 的大作中提到】
: const char *p进行(char*)p好像也是undefined behavior?
avatar
g*8
10
why it is undefined?
I can run the program.
but when I print like this
{{{
...
cout<cout<}}}
the output is:
4 0012FED4
5 0012FED4
what is the reason?
avatar
f*y
11
it seems compiler generated an hidden variable for *p. That is, *p is no longer equal to the value stored at p.
btw, 你机器的内存似乎不大 :D

【在 g*********8 的大作中提到】
: why it is undefined?
: I can run the program.
: but when I print like this
: {{{
: ...
: cout<: cout<: }}}
: the output is:
: 4 0012FED4

avatar
t*t
12
undefined has nothing to do with can or can not run.
in fact, most undefined program can be compiled and runned. if it can't pass
compile, it is called "ill-formed".

【在 g*********8 的大作中提到】
: why it is undefined?
: I can run the program.
: but when I print like this
: {{{
: ...
: cout<: cout<: }}}
: the output is:
: 4 0012FED4

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。