读书人

话说指针,该怎么解决

发布时间: 2012-03-25 20:55:17 作者: rapoo

话说指针
看到很多人说指针就是地址,我站出来说明一下
指针不是地址

指针是一个变量,它里面的数据,才是内存地址

地址只是单纯的地址,是表示内存位置的一个数据

而指针不同,指针还提供一个信息,就是指针所指向的地址的数据类型

举个例子:

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

读书人网 >C语言

热点推荐