在以前的学习中,我们发现在指针变量中存储变量的地址,指针变量指向某个变量。 例如:
int a; 定义//int型的变量a
int *p3; 在int*型中,定义作为存储int型变量的地址的指针变量p3
p3=a; //将变量a的地址分配给指针变量p3,指针变量p3指向变量a;
此时,p3指针变量中保存了变量a的地址。 那么,如何从p3指针变量访问变量a并获取变量a的数据?
c语言提供了“指针赋值运算符*”。 在指针变量之前加上指针赋值运算符*。 将指针变量“降级”,使其成为指针变量所指的变量。 注:指针是取值运算符*,也称为指针降级运算符。
例如,如果指针变量p3指向变量a,则*p3将指针变量p3“降级”为指针变量p3指向的变量。 那么,指针变量p3指向变量a; 因此,*p3为变量a; 所以,如下图所示:
然后,可以使用“指针赋值运算符*”将指针变量降级,并将其转换为指针变量指向的变量。 程序测试示例如下。
程序的执行结果如下。
定义变量a,取出变量a的地址,分配给指针变量pa; 然后,指针变量pa指向变量a。
然后,用指针赋值运算符“*”递减指针变量pa,并将*pa转换为指针变量pa指向的变量a。
那么,*pa是变量a; 因此,a1=*pa; 为变量a1分配变量a的值; 最终,发现变量a1中存储的数据是变量a中存储的数据。
在本课中,您学习了指针变量的定义和使用。 那么,可以总结以下几点。
)1)指针变量是具有独自存储区域的变量。
)指针变量的存储区域。 保存有某个变量的地址。 例如:
int a;
char* pa=a;
那么,变量a的地址被存储在指针变量pa的存储区域中。 此时,指针变量pa指向变量a;
)3)可以用“指针赋值运算符*”将指针变量“降级”,并将指针变量转换为它所指的变量,例如:
int a;
char* pa=a;
*pa='A ';
那么,*pa表达式表示指针变量pa指向的变量a,最终,向变量a指派“a”字符。
htdwd Linux C/C编程教程,Linux系统编程,Openwrt系统开发,wechat336013926572996,QQ:1523520001,博客: www.MMW