用函数实现两个数的交换(指针)
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,对其进行操作。
希望上述讲解对大家有所帮助!!以后回向大家分享我在学习中的经验,想学习的小伙伴可以关注我的博客欧!!
#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,对其进行操作。
希望上述讲解对大家有所帮助!!以后回向大家分享我在学习中的经验,想学习的小伙伴可以关注我的博客欧!!
相关文章推荐
- 用函数和指针实现两个数的交换
- 【面试题】C语言:使用函数实现两个数的交换
- 使用函数实现两个数的交换。
- 使用函数实现两个数的交换。
- 利用函数调用实现两个数的交换
- 利用函数和指针实现最小数和第一个数交换,最大数和最后一个数交换
- 使用函数实现两个数的交换。
- C++分别用指针和引用实现交换函数
- 指针实现两数交换和指向函数的指针
- 利用位运算和指针实现的交换两个数的程序
- 实现不创建临时变量,但交换两个数的函数
- 使用函数实现两个数的交换。
- C语言-使用函数实现两个数的交换
- 指针的应用(c语言)——(子函数实现交换父函数中变量的值)
- 自己实现swap()函数交换两个数的值
- 利用位运算和指针实现的交换两个数的程序
- 通过交换虚函数表指针查看虚函数的实现方式
- C语言中利用位运算和指针实现的交换两个数的程序