C语言之旅(5)参数传递(值传递,指针传递,数组传递)
来源:互联网 发布:数据库脱机要多久 编辑:程序博客网 时间:2024/05/16 15:09
看下图:值传递
在这里我写了一个加法的函数 int Add(int a,int b); a,b是函数的形参;在这个程序中1,2是实参。值传递:实参赋值给形参,在我调用Add(1,2);函数的时候,其实是实现了两步:
1.a=1,b=2;
2.执行函数。这就是值传递。
指针传递:
从上图可以看出来我明明要进行数值c,d的交换,但是为什么输出的结果依旧是原来的。因为在这个时候你用的是值传递,并没有改变原来的主函数的值,就是操作的作用域不同,其实在调用这个函数的时候执行了两步:
1.a=c,b=d;(这个时候a=1,b=2;并且原来的c=1,d=2;)
2.在Exchange(int a,int b);函数中进行数值的交换,但是交换的只是局部变量a和b并没有改变c和d.
所以应该用下面的方法:指针传递:
在这里面,Exchange(int *a,int *b);这个函数传递的是c和d的地址。所以在Exchange函数里面操作的两个内存空间,是真正的c和d的内存空间。所数值交换也是交换了c和d的数值。
因此,如果我们想要改变数值的实参的话就应该传递实参的地址,值传递不能对实参进行任何的改变。
数组传递:
int arr[4]={1,2,3,4};
void MySort(int arr[]);
在这个排序的函数中,int arr[]的意思相当于 int * p;
当数组当做参数传递的时候,数组就相当于是指针,这是后传递的是数组首元素的首地址。
阅读全文
0 0
- C语言之旅(5)参数传递(值传递,指针传递,数组传递)
- (转载) C语言技巧:怎样把数组作为参数传递给函数?(值传递和指针传递)
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- 函数参数异同(值传递、指针传递、引用传递)
- C语言之使用指针数组传递参数
- 一道考察函数参数传递、值传递、指针传递(地址传递)、引用传递
- 一道考察函数参数传递、值传递、指针传递(地址传递)、引用传递
- C语言指针传递参数
- 参数传递之指针传递
- 参数传递之指针传递
- 参数传递之指针传递
- C专家编程--指针和数组(三) 值传递 指针传递 引用传递
- C语言指针传递与值传递
- C中函数传递参数原理:值传递, 指针传递?
- C中函数传递参数原理:值传递, 指针传递?
- 彻底搞定C指针-——第五篇:函数参数的传递(值传递、地址传递、引用传递)
- Docker使用场景
- BZOJ 3243: [Noi2013]向量内积 随机化 数学
- 我的秘密武器—linux
- 查找
- Android弹出软键盘遮挡输入框问题.
- C语言之旅(5)参数传递(值传递,指针传递,数组传递)
- python 分片、截断序列
- 递归和非递归分别实现求第n个斐波那契数。
- 获得可执行jar包存放路径的方法
- CentOS7搭建WordPress个人博客
- spring data redis 执行 lua 脚本
- 【Redux】基于Typescript的精简版Redux实现
- Requests-Python
- C语言进阶-第11~13讲:结构体实践(该年第几天&紧急救援)