是什么意思(int*) &i
?
char i;
int* p = (int*) &i;
...
*p = 1234567892;
...
如果是这样* &i
,我会理解的。但是在这种情况下,这里是一个“ int
”。
&i:表示采用i的地址(即char *)
(int*)&i
:将该指针转换为整数指针(这样做不好/做错了,但是您告诉编译器这样做,所以它甚至都不会发出警告)
int* p = (int*)&i;
:一条声明,将i的指针存储在p中(也将其强制转换:编译器甚至不会抱怨)
*p = 1234567892;
:将这个值写入到p指向的基本位置的几个字节中(尽管p认为它指向一个int,但它指向char!)。这些字节之一将以i结尾,但其他字节将覆盖i附近的字节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句