话说指针
看到很多人说指针就是地址,我站出来说明一下
指针不是地址
指针是一个变量,它里面的数据,才是内存地址
地址只是单纯的地址,是表示内存位置的一个数据
而指针不同,指针还提供一个信息,就是指针所指向的地址的数据类型
举个例子:
0x00000001是一个地址
定义两个指针变量
char *pChar = 0x00000001;
int *pInt = 0x00000001;
0x00000001 和 pChar、pInt 是不同的
把 地址 0x00000001 加 1 ,得到的是 0x00000002
是与0x00000001相邻的另一个byte的内存位置
pChar + 1 ,得到的地址会是 0x00000001+sizeof(char) // 结果也是0x00000002,因为sizeof(char) 是1
pInt+1, 得到的地址会是 0x00000001+sizeof(int) // 一般32位环境,int 通常是4byte,所以结果是 0x00000005
希望大家对指针能认清
[解决办法]
jf