C语言指针变量的定义和使用
指针变量中存放的就是变量在内存中的地址。指针的定义类似于普通变量的定义,只是需要在指针(变量)名前添加指针运算符
将指针运算符

图 1:指向 int 型变量 a 的指针(变量)pa
在程序中,我们可以利用指针(变量的别名)来修改变量的值,如代码清单 1 所示。
代码清单 1:通过指针操作年龄(修改变量的值)
运行结果为:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
*
。
int *pa; //定义了一个指向 int 型变量(对象)的指针(变量)pa //保存“存放整数的变量的内存地址”的小房子 int a; //定义了一个 int 型变量,保存“整数”的小房子 pa = &a; //指针 pa 指向变量 a(指针变量的赋值)
将指针运算符
*
写在指针之前(如*pa
),可以获取指针指向的变量(对象)内存储的内容。即指针 pa 指向变量 a 时,*pa
就是变量 a 的别名,给*pa
赋值就相当于给 a 赋值,*pa=80;
等价于a=80;
(见图 1)。
图 1:指向 int 型变量 a 的指针(变量)pa
在程序中,我们可以利用指针(变量的别名)来修改变量的值,如代码清单 1 所示。
代码清单 1:通过指针操作年龄(修改变量的值)
#include <stdio.h> #include <stdlib.h> int main( ) { system("color 70"); int back00 = 10, back90 = 30, back80 = 35; int *son, *mother, *father; son = &back00; //指针 son 指向 back00 mother = &back90; //指针 mother 指向 back90 father = &back80; //指针 father 指向 back80 printf("儿子今年的年龄:%d\n", *son); printf("妈妈今年的年龄:%d\n", *mother); printf("爸爸今年的年龄:%d\n", *father); puts("5年后:"); *son = 15; //将指针 son 指向的对象修改为 15 *mother = 35; //将指针 mother 指向的对象修改为 35 *father = 40; //将指针 father 指向的对象修改为 40 printf("儿子的年龄:%d\n", back00); printf("妈妈的年龄:%d\n", back90); printf("爸爸的年龄:%d\n\n\n", back80); system("pause"); return 0; }
运行结果为:
儿子今年的年龄:10
妈妈今年的年龄:30
爸爸今年的年龄:35
5年后:
儿子的年龄:15
妈妈的年龄:35
爸爸的年龄:40
知识点总结
-
若指针 pa 指向变量 a,即
pa=&a;
,则 *pa 即为 a 的别名; -
修改 *pa 的值就是修改 a 的值,即
*pa=80;
等价于a=80;
; -
指针前加上指针运算符
*
可以获取指针所指向变量的值(如*pa
); -
变量名前加上取址运算符
&
可以获取变量在内存中的地址(如&a
)。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。