问题描述:运用指针进行角色互换
源代码:
/*运用指针进行角色互换*/
/*只有方案二可以完成角色互换*/
#include<stdio.h>
void swap1(int x,int y),swap2(int *px,int *py), swap3(int *px,int *py);
int main(void)
{
int a=1,b=2;
int *pa=&a,*pb=&b;
swap1(a,b);
printf("After calling swap1:a=%d,b=%d\n",a,b);
a=1;
b=2;
swap2(pa,pb);
printf("After calling swap2:a=%d,b=%d\n",a,b);
a=1;
b=2;
swap3(pa,pb);
printf("After calling swap3:a=%d,b=%d\n",a,b);
return 0;
}
void swap1(int x,int y)
{
int t;
t=x;
x=y;
y=t;
}
void swap2(int *px,int *py)
{
int t;
t=*px;
*px=*py;
*py=t;
}
void swap3(int *px,int *py)
{
int *pt;
pt=px;
px=py;
py=pt;
}
运行结果:
运用指针进行角色互换程序心得:
1、在C语言中实参与形参之间的数据转换是单向的“值传递”方式,调用函数是不能该百年实参变量的是的。当指针变量作为函数参数时也遵循这一规则。调用函数不能改变实参形参的指针变量的值,但是可以改变实参指针变量所指向的变量的值。
2、当指针变量作为函数参数时也遵循这一规则。调用函数不能改变实参形参的指针变量的值,但是可以改变实参指针变量所指向的变量的值。这样的机制叫做引用调用。
3、采用引用调用机制需要在函数定义时将指针作为函数的形参,在函数调用时把变量的地址作为实参。
程序参数:
- 输出大小: 149.720703125 KiB
- 编译时间: 0.30s
网友评论