首先我们看一段代码
#includeint main(void) { printf("%dn",sizeof(int*)); printf("%dn",sizeof(char*)); printf("%dn",sizeof(float*)); printf("%dn",sizeof(double*)); getchar(); return 0; }
这段代码中,我们分别读取了几种类型指针的长度,会是什么结果呢?
四种指针长度一致
所以它们一样,或者目前看起来一样
下面我们来看另一段代码
#includeint main(void) { int a = 0x123456; int* pi = &a; char* pc = &a; *pi = 0; printf("%Xn",a); getchar(); return 0; }
猜猜结果是什么?
完全替换掉了
我们再用char*试试
#includeint main(void) { int a = 0x123456; int* pi = &a; char* pc = &a; *pc = 0; printf("%Xn",a); getchar(); return 0; }
会和前面的一样吗?
只替换了两个bit
虽说长度一样,但不能混用哦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)