任务代码:

  1. #include <stdio.h>

  2. void swap(int *a ,int *b)//按之前对指针认识,*a代表指针变量a,a存储的是地址,*a是地址的值。

  3. { //但是可以看到下面传输过程中swap(&a,&b),取的是地址传输给了*a.看似是矛盾的!

  4. //这里着重注意特例!!!:函数的参数是指针类型,会将一个变量的地址传送到被调用的函数中。

  5. //不是传递值,是传递地址值!!!!!!

  6. int t;

  7. t=*a;

  8. *a=*b;

  9. *b=t;

  10. return;

  11. }

  12. int main()

  13. {

  14. int a,b;

  15. printf("请输入两个数:");

  16. scanf("%d %d",&a,&b);

  17. printf("调用前:%d %d\n",a,b);

  18. swap(&a,&b);//传输的是a,b两个变量的地址

  19. printf("调用后:%d %d\n",a,b);

  20. return 0;

  21. }

执行情况:

知识总结:

函数调用结束后回会释放内存空间;

传地址需要运用指针来做:

尤其注意特例:和传统指针概念理解的的不同

另外:这两种看似符合逻辑的做法也是行不通的!(尤其是第二种)

所有函数指针在执行的时候,形式参数的值无论怎么变化都会被内存释放(不会影响返回结果),而真正有存在意义的是形式参数中存放的地址,将会再返回的时候影响结果

心得体会:

C语言:函数中参数的传值与传地址相关推荐

  1. C语言 —— 整型(int)类型数据,做函数的参数,传值与传地址

    整型数据的做函数参数注意事项: 如只是使用该数据,则把改值直接传递给函数,直接做函数的参数即可: 若需要在函数中对该数据进行更改,则需要把改值的地址当做函数的参数,进行传递. #include < ...

  2. C/C++语言函数中参数的入栈顺序

    对于函数,之前认为会用就行了,对其中的原理并不是很了解,就比如函数中参数的入栈顺序(在这说明一下,函数的参数是保存在栈中的,还有一些局部变量也是存放在栈中),这个问题来源于某互联网的面试题,当然答得很 ...

  3. c语言函数中调用的参数太多

    c语言函数中调用的参数太多问题 问题展示 问题分析 解决方法 问题展示 (图中是我遇到的情况) 问题分析 大家可以看到,在函数中,指针变量和后面的整数变量都成了灰色 解决方法 图中问题只需将中文逗号, ...

  4. C++中的参数传递方式:传值、传地址、传引用总结

    指针:指针是一个变量,只不过这个变量中存储的是一个地址,指向内存中的一个单元. 引用:引用和原变量是同一个东西,只不过是原变量的一个别名. int a = 10; 定义一个整型变量aint *p = ...

  5. c语言 函数多个参数,C语言函数可变参数

    C语言函数可变参数教程 可变参数的函数必须至少有一个强制参数,可选参数的类型可以变化.可选参数的数量由强制参数的值决定,或由用来定义可选参数列表的特殊值决定. 对于每一个强制参数来说,函数头部都会显示 ...

  6. python函数设置默认参数_深入讲解Python函数中参数的使用及默认参数的陷阱

    这篇文章主要介绍了Python函数中参数的使用及默认参数的陷阱,文中将函数的参数分为必选参数.默认参数.可变参数和关键字参数来讲,要的朋友可以参考下 C++里函数可以设置缺省参数,Java不可以,只能 ...

  7. linux中main数据手册,linux中main()函数中参数来源.doc

    linux中main()函数中参数来源 爷而吐裁报讲际芋兽胳缎扒孩员斜阀裔坤且闺获汕秉鳃鞭牲储访电叔麦篷院杰梆滑廊木屹炯历蛋糯诛忙宇倚角缄蔫牲詹狙凄聂脑棵枷团尖枷蝶滞忽唱专迟适苞校驶劫屏列佛束蚂庐悬刽 ...

  8. C++ main函数中参数argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  9. 函数中参数有数组时注意的小问题(不一定要传递数组长度,不用返回数组,可以在函数中改变数组元素值)

    函数中参数有数组时注意的小问题: 1.不一定要传递数组长度 2.不用返回数组,可以在函数中改变数组元素值 通过下面这个小例子来验证: #include<iostream> #include ...

最新文章

  1. Priority VS Bandwidth
  2. http request header 中的host行的作用
  3. Aspectj 实现Method条件运行
  4. vue 计算属性和data_Vue:计算属性
  5. mysql怎么回复.from的数据库_mysql怎么回复.from的数据库
  6. 工作中常用的但是又容易忽略的问题
  7. matlab打包多个m文件,MATLAB GUI多个m文件和fig如何生成exe文件
  8. 如何在Delphi TImageList 中使用 透明 png 图标
  9. 修改VSCode中.exe文件的生成位置(亲测有效)
  10. java dwg转pdf_java实现CAD图纸文件DWG格式转为PDF格式
  11. 解决在MATLAB Simulink Library Browser找不到Car Sim S-Function的问题
  12. 腾讯大牛给予Java初学者的学习建议
  13. java消息队列-kafka
  14. c c++实现restful api服务 c c++实现http服务
  15. Linux 系统检测和加固脚本
  16. js中弹框的三种方式
  17. 有符号数和无符号数,无符号数的减法
  18. Android QQ登录,分享,分享图片
  19. win10安装redis及redis客户端使用方法
  20. 解决can not access a member of class xxx with modifiers ““问题

热门文章

  1. 20181120-1 每周例行报告
  2. java虚拟机 第二章Java内存区域与内存溢出异常
  3. exports、module.exports和export、export default到底是咋回事
  4. VMware如何进入安全模式
  5. 查看oracle数据库的连接数以及用户
  6. JSON与js对象序列化
  7. 实用的SqlHelper类
  8. 激励员工的首席执行官以及他们的秘诀
  9. 计算机专业湖南土建中级职称考试,湖南土建专业中级职称考试,考什么内容方面...
  10. php项目技术选型方案,php-现有资源下,项目技术选型求助