由*p++和*(p++)有什么区别??
这个问题跟i++和++i差不多,(*p)++,是先取指针P的值,然后对其值进行++运算,也就是对 指针指向的内容的值加1.如原来*p=&a=5,经过(*p)++之后&a=6了。
*(p++),也可以写成*p++,是先对指针P进行++运算,然后再取取值。这里就涉及到指针的类型了
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int:
unsigned int : 4个字节
float:
double:
long:
long long:
unsigned long:
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int:
unsigned int : 4个字节
float:
double:
long:
long long:
unsigned long:
指针长度和地址总线有关。因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节,也正是地址总线的意义所在~
同理如果在64位操作系统里面那么sizeof(pstr)=16; // 8*2=16
未完待续。。。。。。。。。。。。。。。。。。。。。。