目录
- 定义一个函数,定义两个形参.和一个中间变量;
- 输入两个数作为实参,调用函数,进行数字交换;
-
代码示例(1)
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<windows.h> void swap(int a, int b) { int tmp = 0; tmp = a; a = b; b = tmp; } int main() { int a, b; printf("输入需要交换的两个数:"); scanf("%d%d", &a, &b); swap(a, b); printf("a=%d b=%d\n", a, b); system("pause"); return 0; }
运行结果
- 结果没有交换,我写了一个错误的代码:! ! ! ! ! ! !
-
根据
- 根据我的再次"学习",无意间得知了一组了不起的函数调用对比代码:
-
代码示例(2)
-
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void swap1(int a, int b)//这样交换实际上是把a和b两个形参的进行了交换,而主函数中的a b实参是没有变化 { int tmp; tmp = a; a = b; b = tmp; } void swap2(int *a, int *b)//这样交换实际上是把a和b两个形参的地址进行了交换,而主函数中的a b实参是没有变化 { int *tmp; tmp = a; a = b; b = tmp; } void swap3(int *a, int *b)//通过用指针来访问数据,而取*号就是把地址里的内容交换了,就达到了交换的效果 { int tmp; tmp = *a; *a = *b; *b = tmp; } int main() { int a, b; printf("请输入需要交换的两个数:"); scanf("%d%d", &a, &b); swap1(a, b); printf("a=%d,b=%d\n", a, b); swap2(&a, &b); printf("a=%d,b=%d\n", a, b); swap3(&a, &b); printf("a=%d,b=%d\n", a, b); system("pause"); return 0; }
正确运行结果: