指针 精髓
指针----地址
通过变量名访问变量,称为直接存储
通过地址(指针)访问变量,称为间接存储
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) 间接访问
案例1
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 exchange3(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);
//3,5
printf("&a=%d,&a=%d,&pointerA=%d",&a,pointerA,&pointerA);
}