指针即为地址,指针几个字节跟语言无关,
而是跟系统的寻址能力有关,
譬如以前是16为地址,指针即为2个字节,
现在一般是32位系统,所以是4个字节,
以后64位,则就为8个字节。
扩展资料:
在64位机器中:
char类型占1个字节
short类型占2个字节
int类型占4个字节
long类型占4个字节
unsigned int类型占4个字节
float类型占4个字节
double类型占8个字节
long double类型占12个字节
-------------------指针占4个字节---------------------
char类型指针占4个字节
short类型指针占4个字节
int类型指针占4个字节
long类型指针占4个字节
unsigned int类型指针占4个字节
float类型指针占4个字节
double类型指针占4个字节
long double类型指针占4个字节
内存分配表
计算机中的内存都是编址的,就像你家的地址一样。在程序编译或者运行的时候,系统(可以不关心具体是什么,可能是编译器,也可能是操作系统)开辟了一张表。每遇到一次声明语句(包括函数的传入参数的声明)都会开辟一个内存空间,并在表中增加一行纪录。记载着一些对应关系。(如图1所示)
Declaration | ID Name Address Length
int nP; | 1 nP 2000 2B
char myChar; | 2 myChar 2002 1B
int *myPointer; | 3 myPointer 2003 2B
char *myPointer2; | 4 myPointer2 2005 2B
指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。32位系统下寻址能力(地址空间)是4G Bytes(0~2^32-1)二进制表示长度为32bits(也就是4Bytes), unsigned int类型也正好如此取值。
参考资料:百度百科--指针