C语言:函数中参数的传值与传地址
2017-07-20 16:14
253 查看
任务代码:
执行情况:
知识总结:
函数调用结束后回会释放内存空间;
传地址需要运用指针来做:
尤其注意特例:和传统指针概念理解的的不同
另外:这两种看似符合逻辑的做法也是行不通的!(尤其是第二种)
所有函数指针在执行的时候,形式参数的值无论怎么变化都会被内存释放(不会影响返回结果),而真正有存在意义的是形式参数中存放的地址,将会再返回的时候影响结果
心得体会:
#include <stdio.h> void swap(int *a ,int *b)//按之前对指针认识,*a代表指针变量a,a存储的是地址,*a是地址的值。 { //但是可以看到下面传输过程中swap(&a,&b),取的是地址传输给了*a.看似是矛盾的! //这里着重注意特例!!!:函数的参数是指针类型,会将一个变量的地址传送到被调用的函数中。 //不是传递值,是传递地址值!!!!!! int t; t=*a; *a=*b; *b=t; return; } int main() { int a,b; printf("请输入两个数:"); scanf("%d %d",&a,&b); printf("调用前:%d %d\n",a,b); swap(&a,&b);//传输的是a,b两个变量的地址 printf("调用后:%d %d\n",a,b); return 0; }
执行情况:
知识总结:
函数调用结束后回会释放内存空间;
传地址需要运用指针来做:
尤其注意特例:和传统指针概念理解的的不同
另外:这两种看似符合逻辑的做法也是行不通的!(尤其是第二种)
所有函数指针在执行的时候,形式参数的值无论怎么变化都会被内存释放(不会影响返回结果),而真正有存在意义的是形式参数中存放的地址,将会再返回的时候影响结果
心得体会:
相关文章推荐
- C语言数组元素地址作为函数参数
- c语言指针做函数参数,使用指针地址(二级指针)在被调函数中修改主调函数的指针。
- 如果改变了形参数组的值 从而在调用函数期间 形参数组就和实参数组共占同一段内存单元 为什么形参数组从实参数组那里得到起始地址后 请问各位C语言高手:当用数组名作函数参数时 也就该变了实参数组的值
- C语言中写一个函数返回参数二进制中 1 的个数
- C语言中如何将二维数组作为函数的参数传递
- 让AllocateHwnd接受一般函数地址作参数(105篇博客)
- objective-c 函数参数 传地址 传指针 指向指针的指针
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言中的可变参数函数 三个点“…”
- C语言中函数参数的入栈顺序
- C语言中函数window(10,10,40,11);各参数含义
- C语言 内存分配 地址 指针 数组 参数 实例解析
- C语言 函数调用传数组首地址
- 学习C语言带参数的函数
- c语言创建支持多参数多类型的函数
- C语言_结构体变量指针做函数参数的使用案例
- 彻底搞定C指针-——第五篇:函数参数的传递(值传递、地址传递、引用传递)
- C语言中函数参数的入栈顺序
- C语言中实现参数个数不确定的函数
- 函数参数的值传递和地址传递