指针在内存中占几个字节
终极管理员 知识笔记 217阅读
一个指针到底占几个字节?
答:那么,一个指针到底占几个字节呢? 一个指针在64位的计算机上,占8个字节。 这么简单的问题,为什么面试官愿意问呢? 其实这个问题不是在考你的记忆能力,是在考察你的计算机基础能力。 就比如,在你答出来4个字节的情况下,面试官会问一句:
1个内存地址只存多少字节?
答:1个内存地址只存1个字节 (Byte); 1个字节等于8位二进制,每一位二进制的0或1,叫“比特” (bit);
在64位的计算机中,指针占多少个字节?
答:同理,在64位的计算机中,指针占8个字节。 同时也可以看出,由于地址总线为32,那么每次寻址的空间为0x0000 0000 0000 0000 ~ 2 32 -1,那么CPU的最大内存为2 32 Byte=2 22 KB=2 12 MB=2 2 GB=4GB。 而64位,最大内存是2 64 Byte。
指针的占用字节数和它指向的数据类型有关系吗?
答:因为指针的本身的值就是内存地址,它的占用字节数也就是该程序能够访问内存地址的空间大小,比如32位编译模式下,最大寻址为32位,2^32 B=4 GB,指针的值就是在 0x00000000 - 0xFFFFFFFF 范围内的值。 因此指针本身占用的内存数和它指向的数据类型没有任何关系。