// 输入a和b两个整数,按先大后小的顺序输出a和b
// 以指针的形式
//定两个整数,传地址到函数
//解地址将内容交换
//注意不能交换指针
//方法1
#include<stdio.h>
void comp(int* a, int* b)
{
int c;
if (*a < *b)
{
c = *a;
*a = *b;
*b = c;
} //不能采用交换指针的方式,
}
int main()
{
int a=2, b=3;
//或者定义两个指针指向a和b
printf("%d,%d\n", a, b);
comp(&a, &b);
printf("%d,%d", a, b);
}
方法2
#include<stdio.h>
int main()
{
int a = 2, b = 3;
int* p1 = &a;
int* p2 = &b;
if (a < b)
{
p1 = &b;
p2 = &a;//交换地址
}
printf("%d,%d", *p1, *p2);
}
//例子 8.5 输入三个整数,要求从大到小输出
//
#include<stdio.h>
void swap(int* m, int* n)//交换函数!
{
int d;
d = *m;
*m = *n;
*n = d;
}
void comp(int* pa, int* pb, int* pc)
{
if (*pa < *pb)
swap(pa, pb);//函数的嵌套调用!
if (*pa < *pc)
swap(pa, pc);
if (*pb < *pc)
swap(pb, pc);
}
int main()
{
in