一、指针变量==存放地址的变量
![指针变量==存放地址的变量](https://img-blog.csdnimg.cn/048b6dc2f4c045048eb4682f975de21b.png)
二、指针类型——决定指向空间的大小
![在这里插入图片描述](https://img-blog.csdnimg.cn/df4844ba719a4dd6934d7d9a8570622a.png)
ex1、封装一个函数,实现两个数的交换
![ex1.c](https://img-blog.csdnimg.cn/c61042d17a2041af8638ea99d34c1dc6.png)
ex2、指针指向固定的区域
![ex2.c](https://img-blog.csdnimg.cn/dfdea9ffb4f346f4b0b1f1f53ff4f854.png)
三、通过指针引用数组
![在这里插入图片描述](https://img-blog.csdnimg.cn/6d27e8d7d110485d91a2b8b841c72a0c.png)
ex3、 要求不管怎么输入五个数,在输出的时候都是由大到小的顺序输出,用函数封装实现
![在这里插入图片描述](https://img-blog.csdnimg.cn/59b5ad5970d04f69bdd92daf5ad65da7.png)
#include <stdio.h>
void InitNum(int *parr,int len)
{
int i;
puts("请输入5个数:");
for(i = 0; i < len; i++){
scanf("%d",parr++);
}
}
void MaxToMin(int *parr,int len)
{
int i,j;
int tmp;
for(i = 0; i < len-1; i++){
for(j = i+1; j < len; j++){
if(parr[i] < parr[j]){
tmp = parr[i];
parr[i] = parr[j];
parr[j] = tmp;
}
}
}
puts("");
}
void printfArr(int *parr,int len)
{
int i;
for(i = 0; i < len; i++){
printf("%d ",*parr++);
}
}
int main()
{
int arr[5];
int *p;
int len;
p = arr;
len = sizeof(arr)/sizeof(arr[0]);
InitNum(arr,len);
puts("输入的5个数是:");
printfArr(arr,len);
MaxToMin(arr,len);
puts("从大到小排序为:");
printfArr(&arr[0],len);
return