指针
指针是 C 语言中一个重要的概念,也是 C 语言最精彩的部分。正确而灵活的运用它,可以是程序简洁、紧凑、高效。
指针变量是一种特殊的变量,它存放的不是数据,而是另一种变量的地址。这个存放数据的变量被称为指针变量所指向的目标变量。由于通过指针变量中的地址可以直接访问它指向的目标变量,常把指针变量简称为指针。
1:指针变量的命名,与一般变量命名相同,遵循 C 语言的命名规则。
2:指针变量的类型,是指针变量所指向的变量的类型,而不是自身的类型。
定义指针变量
定义指针变量的一般形式为:
类型名 * 指针变量名
int * point_1,* point_2;
上面定义的基类型为 int 的指针变量 point_1 和 point_2 只能用来指向整型的变量。
引用指针变量
- 给指针变量赋值。如:
p=&a; //把 a 的地址赋给指针变量 p
- 引用指针变量指向的变量
printf("%d",*p);
表示将整数 1 赋给 p 当前所指向的变量,如果 p 指向变量 a,则相当于把 1 赋给 a,即 a=1;。
- 引用指针变量的值。如:
printf("%o",p);
作用是以八进制数形式输出指针变量 p 的值,如果 p 指向了 a,就是输出了 a 的地址,即 &a。
代码练习
输入两个整数,按先大后小的顺序输出 a 和 b。
#include<stdio.h>
int main(){
int *p1,*p2,*p,a,b;
printf("please enter two integer number:");
scanf("%d,%d",&a,&b);
p1 = &a;
p2 = &b;
// 注意:这里是交换指针的值
// 即指针的指向发生了改变
// 但是两个变量 a 和 b 的值是没有改变的
if(a<b){
p = p1;
p1 = p2;
p2 = p; //使 p1 和 p2 的值互换
}
// 如果