指针变量:用来存一个地址指向关系的变量单元
1.指针变量的声明:数据类型 * 指针变量
- 指针变量的值是一个地址值
- 指针变量的类型必须和它所指向的变量的地址类型相匹配
- 一类指针变量仅可指向一类单元
例如:int *p;
int * 是整型地址,p是指针变量,如图
- 指针变量的大小 :sizeof(指针变量)或sizeof(数据类型* )
不同类型的指针变量单元大小相同
2.给指针变量赋值
即使指针变量有指向
指针变量=地址;(二者类型必须相统一)
例如:int x=3;
int * p;//p的指向就是p内所存地址的指向,&p的指向指向p
p=&x;//算&x的地址值,类型为int *
p=x;//(int *)与(int)二者类型不同,不符
使用指针变量时必须使其有指向
指针变量的指向
形式:(* 指针变量)(给准地址+类型匹配)
例如:int x=3;
int *p=&x;
printf(“%d\n”,*p);//out :3
表示x:x; *&x ; *p; **&p
经典例题
例如:通过px、py交换变量x、y的值
#include <stdio.h>
void swap(int *px,int *py)
{
int a;
a=*px;
*px=*py;
*py=a;
}
int mian(void)
{
int x,y;
scanf("%d %d",&x,&y);
swap(&x,&y);
printf("%d %d\n",x,y);
return 0;
}
intput:3 5
output:5 3