新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机C程序中的指针与指针变量

单片机C程序中的指针与指针变量

作者:时间:2016-11-29来源:网络收藏
一个变量具有一个变量名,对它赋值后就有一个变量值,变量名和变量值是两个不同的概念。变量名对应于内存单元的地址,表示变量在内存中的位置,而变量值则是放在内存单元中的数据,也就是内存单元的内容。变量名对应于地址,变量值对应于内容,应以区别。
例如定义一个整形变量int x,编译器就会分配两个存储单元给x。如果给变量赋值,令x=30,这个值就会放入对应的存储单元中。虽然这个地址是由编译器分配的,但我们是无法事先确定的,但可以用取地址运算符&取出变量x的地址,例如取x变量的地址用&x。

&x就是变量x的指针,指针是由编译器分配,而不是由程序指定的,但指针值可以用&x取出。


如果把指针(地址值)也作为一个变量,并定义一个指针变量xp,那么编译器就会另外开辟一个存储单元,用于存放指针变量。这个指针变量实际上成了指针的指针,例定义:
int *xp

通过语句xp=&x把变量x的地址值,存于指针变量xp中,现在访问变量x有两种方法,一是直接访问,另外是用指针间接访问:*xp

在int *xp中的*和*xp中的*所代表的意义不同,int *xp中的*是对指针变量定义时作为类型说明,而*xp中的*是运算符,表示由xp所指示的内存单元中取出变量值。


评论


技术专区

关闭