前言:由这一节开始指针的练习
一、程序分析
利用指针将三个数,a,b,c的地址不变,但是指针指向改变(也就是它的内存数据改变)
二、程序源代码
#include<stdio.h>
#include<Windows.h>
#include<math.h>
void swap(int *i,int *j) //定义函数swap,里面含有两个指针参数 i,j
{
int p;
p=*i;
*i=*j;
*j=p;
}//函数定义是将两个数的值域改变而地址不改变
int main()
{
int n1,n2,n3;
int *p1,*p2,*p3;
printf("请输入三个数字\n:n1,n2,n3:");
scanf("%d %d %d",&n1,&n2,&n3);
p1=&n1;//将n1的地址赋给p1,下面同理
p2=&n2;
p3=&n3;
if(n1>n2)
{
swap(p1,p2);//引用函数,下面同理
}
if(n1>n3)
{
swap(p1,p3);
}
if(n2>n3)
{
swap(p2,p3);
}
printf("这三个数由小到大的排序为:%d,%d,%d\n",n1,n2,n3);
system("pause");
return 0;
}