黑马程序员_C语言中函数参数的传递的三种形式
来源:互联网 发布:淘宝客成交计入权重吗 编辑:程序博客网 时间:2024/06/04 20:08
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。下面用这三种方式来实现两个变量值的对调。代码一为值传递,代码二为地址传递,代码三为引用传递。
示例代码一(该方法并不能实现两个变量值的对调):
#include <stdio.h>void Exchg1(int x, int y) { int temp; temp = x; x = y; y = temp; printf("x = %d, y = %d\n", x, y); } int main() { int a = 4,b = 6; Exchg1(a, b); printf("a = %d, b = %d\n", a, b); return(0); }
输出的结果为:
x = 6, y=4.
a = 4, b=6.
在调用函数Exchg1时,进行的只是简单地值传递,只是把a、b的值分别赋值给了x、y,之后在Exchg1函数体内再也没有对a、b进行任何操作了。交换的只是x、y变量的值,对变量a、b的值没有影响。所以调用Exchg1后变量a、b的值并没有交换。
示例代码二:
#include <stdio.h> void Exchg2(int *px, int *py) { int temp = *px; *px = *py; *py = temp; printf("*px = %d, *py = %d.\n", *px, *py); } int main() { int a = 4; int b = 6; Exchg2(&a, &b); printf("a = %d, b = %d.\n", a, b); return(0); }
输出的结果为:
*px=6, *py=4.
a=6, b=4.
在调用Exchg2函数时,进行的是地址传递,是把变量a、b的地址分别赋值给了指针变量px、py,这时对*px、*py的操作也就是对a、b变量本身的操作了。所以,交换*px、*py的值也就是交换变量a、b的值,调用Exchg2后,变量a、b的值交换。
示例代码三:
#include <stdio.h> void Exchg3(int &x, int &y) { int temp = x; x = y; y = temp; printf("x = %d,y = %d\n", x, y); } int main() { int a = 4; int b = 6; Exchg3(a, b); printf("a = %d, b = %d\n", a, b); return(0); }
输出的结果为:
x=6, y=4.
a=6, b=4.
在调用Exchg3函数时,进行的是引用传递, 是将a、b分别代替了x、y,也就是x、y分别引用了a、b变量。这样函数里面操作的其实就是实参a、b本身了,所以调用Exchg3后,变量a、b的值交换。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
0 0
- 黑马程序员_C语言中函数参数的传递的三种形式
- C语言中函数参数的传递的三种形式
- 第二周【项目1c/c++语言中函数参数传递的三种形式】
- 黑马程序员_C语言的函数
- 黑马程序员-C语言学习日记三之函数参数的传递的小结
- C语言函数的参数传递形式
- C语言中函数参数传递的三种方式
- C语言中函数参数传递的三种方式
- C++语言中函数参数传递的三种方式
- C++语言中函数参数传递的三种方式
- C++语言中函数参数传递的三种方法
- C语言中函数参数传递的三种方式
- C++语言中函数参数传递的三种方式
- 黑马程序员_C#给方法传递参数的几种方式
- 黑马程序员_C语言的函数、数组、字符串
- 黑马程序员_C#语言中各种循环的优缺点
- 黑马程序员_C语言中运算符的总结
- 黑马程序员_C语言中 break与continue的区别
- 利用JSP+JS+CSS+Servlet实现用户登录,保存用户名密码功能
- 前端Mahsup异步依赖方式不能做业务数据依赖
- oral English
- JAVA中如何用接口实现多继承和多态 (非常好)
- PHP的版本选择
- 黑马程序员_C语言中函数参数的传递的三种形式
- 学习总结1
- How to Avoid SQL Injection Vulnerabilities
- C#如何禁用Form窗口的最大化按钮
- Say -大前端江湖旗下异想社区上线
- 02. 方法
- 3G调试日记
- 第五周项目2-分数类的雏形
- HDU解题报告——1014