关于指针变量作函数参数的补充
三个数从大到小输出
#include<stdio.h> void exchange(int *q1,int *q2,int *q3); void swap(int *pt1,int *pt2); int a,b,c; int *p1, *p2,*p3; int main() { scanf("%d,%d,%d",&a,&b,&c); p1=&a; p2=&b; p3=&c; exchange(p1,p2,p3); printf("%d,%d,%d",a,b,c); return 0; } void exchange(int *q1,int *q2,int *q3) { if(*q1<*q2) swap(q1,q2); if(*q1<*q3) swap(q1,q3); if(q2<q3) swap(q2,q3);}
void swap(int *pt1,int pt2)
{
int t;
t=pt1;
pt1=pt2;
*pt2=t;
}
想通过函数调用得到3个想改变的值。
在主调函数中设置3个变量a,b,c用三个变量指针p1,p2,p3,指向它们。- 设计一个函数exchange,有3个指针形参。在这个函数中改变这三个形参q1,q2,q3的值,为了简化代码再设计一个函数swap,使每次符合条件的值互换
- 在主调函数中调用exchange函数,调用时将p系列作为实参,将它们的值(地址)传给exchange函数的形参q系列。
- 在exchange函数和swap函数的作用下,通过形参指针变量,改变它们所指向的3个变量(实际上是在swap函数中直接改变所指向变量的值)。
完成。
指针变量作为函数参数物理模型: 定义a为整形,a的地址为2000;定义一个指针变量p,存放a的地址;当*p时就通过p所存放的地址提取出a的值。

浙公网安备 33010602011771号