指针变量是一种特殊的变量,它存放的不是数据,而是另一种变量的地址。这个存放数据的变量被称为指针变量所指向的目标变量。由于通过指针变量中的地址可以直接访问它指向的目标变量,常把指针变量简称为指针。
指针变量是一种存放地址的特殊变量,其特殊性表现在类型和值上。从变量角度讲,指针变量也具有变量的要素:
(1)指针变量的命名,与一般变量命名相同,遵循c语言的命名规则。
(2)指针变量的类型,是指针变量所指向的变量的类型,而不是自身的类型。
在定义指针变量时要注意,指针变量前面的“*”表示该变量的类型为指针型变量。指针变量名是point_1和point_2,而不是*point_1和*point_2。
输入3个整数a,b,c要求按从大到小的顺序将他们输出,用函数实现
(形参最好区分一下,这里故意写成一样的,发现不影响)
#include<stdio.h>
int main()
{
void exchange(int *p1,int *p2,int *p3);
int *p1,*p2,*p3,a,b,c;
printf("please enter three integer numbers:");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
p1=&a;
p2=&b;
p3=&c;
exchange(p1,p2,p3);
printf("a=%d,b=%d,c=%d",*p1,*p2,c);
return 0;
}
void exchange(int *p1,int *p2,int *p3)
{
void swap(int *p1,int *p2);
if(*p1<*p2)swap(p1,p2);
if(*p1<*p3)swap(p1,p3);
if(*p2<*p3)swap(p2,p3);
}
void swap(int *pointer_1,int *pointer_2)
{
int temp;
temp=*pointer_1;
*pointer_1=*pointer_2;
*pointer_2=temp;
}