函数传址调用的基本解析

简介: 函数传址调用的基本解析

在c语言中函数发挥着简便运算以及增加代码可读性的作用,而自定义函数更是使代码的运算更加灵活,一般的传值调用无法直接更改参数的数值。就如该函数中如此,结果没有变化。

image.pngimage.png

调试之后我们发现,在程序结束的时候a和b的值并不会因为x y值的变化而变化,因而即便在函数中x y交换了值,但是依然不会对a b造成实际影响。

7b447870ec1949268aeb6ffb9059bfc8.png

同时还要提到一点,调试!!!!!真的超级好用,只要你有足够耐心跟着程序一条条分析,自己找出问题的成就感真的会远比别人看出错误的感觉来得直接和强烈,同时关于这个知识点自己影响也会更加深刻。


在函数中a b为实际参数而x y为形式参数,即为实际参数的一份临时拷贝。可以理解为直接传值的话二者并没有什么直接的联系。


由于不会用return返回两个数,这时候我们就要用到传址来运行代码,因为根据一个数的指针我们可以直接定位到改数值并进行修改。

image.png

传参的时候用&(取地址符号)取a b的地址传输到函数之中,在函数之中进行接收,由于传输过来的是地址,而指针变量的数据类型为int*所以用int*进行定义。之后交换之时使用*(解引用操作符)使我们可以顺着地址找到原来的a b进行修改。之后我们在函数中对其的修改就能在主函数中直接体现。


在函数中一定要带上*不然实际上的操作并不会影响到实际数值

目录
相关文章
|
1月前
|
算法 Linux C++
【Linux系统编程】深入解析Linux中read函数的错误场景
【Linux系统编程】深入解析Linux中read函数的错误场景
205 0
|
1月前
|
存储 并行计算 前端开发
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术(二)
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术
39 1
|
1月前
|
数据安全/隐私保护 C++ 容器
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术(一)
【C++ 函数 基础教程 第五篇】C++深度解析:函数包裹与异步计算的艺术
47 0
|
1月前
|
存储 监控 Linux
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
【Linux IO多路复用 】 Linux下select函数全解析:驾驭I-O复用的高效之道
54 0
|
1月前
|
C语言
c语言内存函数的深度解析
c语言内存函数的深度解析
32 3
|
30天前
|
C语言
字符函数和字符串函数解析及模拟实现
字符函数和字符串函数解析及模拟实现
48 0
|
1月前
|
算法 编译器 C语言
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
【C++ 函数 基本教程 第六篇 】深度解析C++函数符号:GCC与VS的名称修饰揭秘
42 1
|
1月前
|
算法 Serverless 数据安全/隐私保护
【C++ 函数 基本教程 第三篇 】深度解析C++函数类型:探寻全局函数、成员函数与静态函数的奥秘
【C++ 函数 基本教程 第三篇 】深度解析C++函数类型:探寻全局函数、成员函数与静态函数的奥秘
40 1
|
1月前
|
存储 安全 编译器
C/C中sizeof和strlen函数的实现:详细解析sizeof和strlen函数的实现机制、参数说明和使用技巧
C/C中sizeof和strlen函数的实现:详细解析sizeof和strlen函数的实现机制、参数说明和使用技巧
19 1
|
1月前
|
存储 C语言
C语言中的指针与函数:深入解析与实战应用
C语言中的指针与函数:深入解析与实战应用
14 0

推荐镜像

更多