目录
1.指针的大小
32位平台上:4个字节
64位平台上:8个字节
代码证明:
int main()
{
printf("%d %d %d\n", sizeof(int*),sizeof(char*),sizeof(long*));
return 0;
}
在VS编译器上,当解决方案平台位x86(即32位平台)时,运行结果如下:
当解决方案平台位x86(即64位平台)时,运行结果如下:
2.指针类型
变量有不同的类型 ,指针也有不同的类型,通过上面的代码我们知道不同类型的指针大小相同,那么不同类型的代码的意义是什么呢?
①解指针操作能够访问几个字节
int main()
{
int a = 0x11223344;
int* pa = &a;
*pa = 0;
return 0;
}
上述代码段,指针类型为int* ,我们进行调试:可以看到解引用是访问了4个字节
int main()
{
int a = 0x11223344;
char* pa = (char*)&a;
*pa = 0;
return 0;
}
指针类型改为char* ,我们进行调试:可以看到解引用是访问了1个字节