一个指针将被分配一个字节,所以它可以寻址多达2^8个地址,即只有128个地址,但一个32位机器可以寻址多达2^32个地址,然后指针将如何保存超过8位的地址,我很困惑,任何人都可以请帮助。指针大小和地址范围
回答
32位二进制指针的大小通常为4个字节。如果您将代码编译为64位二进制文件,则指针的大小应为8个字节。解决可用内存足够大。
您可以检查任何类型的指针变量的大小这样
printf("%zu\n", sizeof(int *));
好像你的char
和char *
大小之间的混淆。 char
存储一个字符变量,其大小是一个字节。你可以检查一下:
printf("%zu\n", sizeof(char));
然而,char *
是一个指向char
,其大小一般都在32位环境
printf("%zu\n", sizeof(char *));
char * p的大小将是一个字节,请您解释一下这个 – user2717079
char的大小是一个字节。但是,假设你正在使用32位系统,则char *的大小将为4个字节。 – Kunal
@ user2717079您将'char'与'char *'的大小混淆在一起。 'char *'的大小完全取决于您的机器拱门。 –
- 1. 指针和地址
- 2. 指针范围
- 3. RAII - 类指针和范围
- 4. Slplit IPv4地址到最小和最大范围
- 5. 指针和地址,该指针导致
- 6. C++指针范围
- 7. C指针和地址
- 8. 指针运算和地址
- 9. ds1820地址,指针和I2C
- 10. C++地址和指针
- 11. 指针和参考地址
- 12. 确定86 MONITOR指令地址范围
- 13. 大于和小于范围
- 14. C++指针指针范围问题
- 15. IPv6地址范围
- 16. python linklist指针和大小
- 17. 从CIDR范围检索最大/最小IP地址
- 18. C++指针和变量范围
- 19. C++对象指针和范围
- 20. delphi指针地址
- 21. JavaScript函数指针范围
- 22. C++对象指针范围
- 23. C++ - 安全指针范围?
- 24. C++裸指针范围
- 25. 的Windows栈和堆地址范围
- 26. 指针的大小
- 27. 检查IP地址范围
- 28. mips地址超出范围
- 29. 地址范围:不够长
- 30. 散列IP地址范围
什么的第一句话平均4个字节 - 是一个断言,一个假设,一个评估还是一个问题?无论如何,这是没有道理的。 –
在32位机器上,指针通常是4个字节。 –
在32位机器上指针将为32位(4字节) – tristan