use*_*466 0 c pointers memory-address
在C中,我们可以在变量前放置"&"来计算出该变量的地址.我有一台32位机器.每当我在控制台中打印地址时,控制台都会显示一个7位数的基数10.我只是想知道这个数字(10 ^ 7)与32位机器有什么关系.(2 ^ 32)谢谢
pax*_*blo 13
您可能应该将其打印为指针或十六进制值:
printf ("address = %p\n", &variable);
printf ("address = %x\n", &variable);
Run Code Online (Sandbox Code Playgroud)
这将为您提供最多8位的十六进制数(对于您的32位地址空间).
一个32位数字的范围从0000000016至FFFFFFFF16(0通过4,294,967,295在十进制),所以它可以是最多10个十进制数字.
你只得到一个7位数的基数为10的原因是因为你的变量远不是地址空间的顶部.
| 归档时间: |
|
| 查看次数: |
2411 次 |
| 最近记录: |