Windows 下任何指针都是一个 32 位地址,也就是 4 个字节。所以不管什么类型的指针都可以强制转换的。指针类型的意义在于告诉编译器要同时处理该地址以及以后的几个字节。
例如一个指针 p 的值是 0x0041FF10 (瞎编的)
如果它是 int * 类型的
那么用 *p 的时候,就会把 0x0041FF10 开始的 sizeof(int) 个字节一起读出来,按 int 类型的存储方法解析出它的值
如果它是 double * 类型的
那么用 *p 的时候,就会把 0x0041FF10 开始的 sizeof(double) 个字节一起读出来,按 double 类型的存储方法解析出它的值
空类型指针和其他类型指针转换根本原则
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
强制指针类型转换
强制指针类型转换就是把一片内存中的内容按指定的格式去解读,可是 (void*)1,我该如何去理解?
职场 休闲 (void*)1 -
指针类型转换后, 指针值会改变
#include cstdlib>#include iostream>using namespace std;struct IBase...{ int a;
struct iostream include system #include -
c 无类型指针与类型转换
...
无类型指针 c JAVA