简介
通过被调函数修改主调函数普通变量的值
1.实参必须是普通变量的地址
2.形参必须是指针变量
3.被掉函数中通过修改 *形参名的方式修改主调函数相关变量的值
代码及笔记
返回了多个值,因为C语言使用了指针(指针就是对应的内存地址,直接去取值就可以了,不用传值,因此这就是C语言高效的原因)
可是这里没有返回值(void),为什么返回多个值呢?
因为使用的是内存地址
colse方法修改了对应地址的值,所以值改变了,因此不用返回值
#include <stdio.h>
#include <stdlib.h>
/**
返回多个值
通过内存地址修改对应的值,实现了间接返回多个值
*/
// 返回了多个值,因为C语言使用了指针(指针就是对应的内存地址,直接去取值就可以了,不用传值,因此这就是C语言高效的原因)
// int* a:a存放的值为 main函数里的 a的内存地址
// int* b:b存放的值为 main函数里的 b的内存地址
// int* a,int* b为形参
void colse(int* a,int* b){
// 直接操作地址对应的值
*a = 0;
// 取 b 变量存储的地址的值,赋值为 0
*b = 0;
}
main(){
// 一键关闭 GPS 和 Wifi
// 1 代表的是开,0 代表是关闭
int a = 1;
int b = 1;
// 可是这里没有返回值(void),为什么返回多个值呢?
// 因为使用的是内存地址
// colse方法修改了对应地址的值,所以值改变了,因此不用返回值
// &a,&b为实参
colse(&a,&b);
printf("a=%d\n",a);
printf("b=%d\n",b);
system("pause");
}
执行结果: