指针 精髓
指针直接指向的的是地址
通过变量名访问变量,称为直接储存
通过地址(指针)访问变量,成为间接储存
1、定义指针变量
基类型 * 指针变量名
说明:基类型可以是任何数据类型
* 说明其后的变量是指针变量名
指针变量名是任意合法的标识符
例如
int * pointerA;
2、指针变量赋值
1)先定义,后赋值
int * pointerA;
int a;
pointerA=&a;
2)初始化 定义的同时赋值
int a,* pointerA=&a;
3、通过指针访问变量(间接访问)
**代表指针所指向的内存单元,*后面只能跟地址变量(指针变量)
int a=3;
int *pointerA=&a;
*pointerA=5;//间接访问
a=5;//直接访问
printf(“a=%d”,a); 直接访问
printf(“a=%d”,*pointerA);间接访问
案例一
void exchange(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
void main()
{
int a=3,b=5;
exchange(a,b);
printf(“a=%d,b=%d”,a,b);
}
案例2
void exchange2(int * x,int * y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
void main()
{
int a=3,b=5;
exchange2(&a,&b);
printf(“a=%d,b=%d”,a,b);
}
案例3
void exchange(int * x,int * y)
{
int * t;
t=x;
x=y;
y=t;
}
void main()
{
int a=3,b=5;
int * pointerA=&a;
exchange3(&a,&b);
printf(“a=%d,b=%d”,a,b);
printf("&a=%d,&a=%d,&pointerA=%d",&a,pointerA,&pointerA);
}
12-02
12-17
11-08