您的位置:首页 > 其它

用函数实现两个数的交换(指针)

2017-10-11 21:29 260 查看
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#include <stdlib.h>

void swap(int *pa,
int *pb)

{

int tmp = *pa;

*pa= *pb;

*pb = tmp;

 

}

int main()  

{

int a = 0, b = 0;

printf("请输入要交换的两个数\n");

scanf("%d%d", &a, &b);

swap(&a,&b);

printf("%d %d", a, b);

getchar();

system("pause");

    return 0;  

}  

      不知道大家是否注意到,在定义函数时,并非将a,b的值赋给了形参,而是将a,b的地址付赋给了整形的指针变量*pa和*pb,这是因为在将实参传给形参之后,在函数内部对形参的变量进行了值得交换,但是形参无法将值传给实参,这是由于值传递是单向的,所以对函数内部的操作并不能改变外部的值,因此将a,b的地址进行了传递,这样,就能通过指针找到a,b,对其进行操作。

      希望上述讲解对大家有所帮助!!以后回向大家分享我在学习中的经验,想学习的小伙伴可以关注我的博客欧!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: