3327|7

6366

帖子

4929

TA的资源

版主

楼主
 

C/C++中的实参和形参 [复制链接]

  本帖最后由 tiankai001 于 2014-10-30 23:29 编辑

C/C++中的实参和形参
实参和形参,很抽象的一个概念,新手很难搞懂。其实各种书籍把他讲得很明白,但是就是看不懂。中国人就喜欢把简单的问题复杂化。我草,我也是深受其害。
先说C语言:
    只要知道了按值传递和按地址传递的区别,就会明白实参和形参的具体工作细节。
1)按值传递(不能改变实参)
    实参是变量,表达式等数值。
    函数调用的时候,实参和形参存在于内存中2快不同的区域,实参先自己复制一份拷贝,再把拷贝传给形参。由于是传递的是拷贝,所以实参不会受形参的影响,实参值不会被改变。
2)按地址传递(可以改变实参)
    实参是指针。
    函数调用的时候,指针传给你,形参和实参指针都一样,对形参的任何操作就等于对实参的操做。实参的值就可以被改变。
再说C++:
   C++有引用来代替指针这种落后的类型。
1)const引用传递(不能改变实参)
   和上面的C中按值传递的效果一样,但是效率高一些,因为引用是不用拷贝实参的,减少了复制的开销。const就决定了不能改变实参。
2)按引用传递(可以改变实参)
   引用其实大部分情况下和指针一样,对形参的任何操作就等于对实参的操做。实参的值就可以被改变。要不变,就学上面加个const。
    实际应用中,形参有3种用法:
1)f(int X)
这C语言的用法,实参是数值,就不变;实参是指针,就可以改变。
2)f(int& X)
C++的用法,实参可以改变。
3)f(const int& X)
C++的用法,实参不变。
什么时候用哪一种呢?就是取决于是否改变实参!!!
建议用C++的用法,虽然C++兼容C。



最新回复

学习了  详情 回复 发表于 2014-11-26 16:43
点赞 关注
 
 

回复
举报

1131

帖子

17

TA的资源

纯净的硅(高级)

沙发
 
一连发四贴啊,楼主,
 
 
 

回复

6366

帖子

4929

TA的资源

版主

板凳
 
都是相关的内容,所以就一下发送了多个帖子
 
 
 

回复

3025

帖子

0

TA的资源

五彩晶圆(初级)

4
 
实参和形参,很抽象的一个概念,新手很难搞懂。其实各种书籍把他讲得很明白,但是就是看不懂。中国人就喜欢把简单的问题复杂化。我草,我也是深受其害。
有劳楼主了啊
 
 
 

回复

6366

帖子

4929

TA的资源

版主

5
 
凤凰息梧桐 发表于 2014-11-2 15:21
实参和形参,很抽象的一个概念,新手很难搞懂。其实各种书籍把他讲得很明白,但是就是看不懂。中国人就喜欢 ...

是啊,其实很多简单的问题只用简单的几句话都讲明白了,没必要长篇大论
 
 
 

回复

1

帖子

1

TA的资源

一粒金砂(初级)

6
 
是啊,其实很多简单的问题只用简单的几句话都讲明白了,没必要长篇大论
 
 
 

回复

6366

帖子

4929

TA的资源

版主

7
 
pwj596819850 发表于 2014-11-3 15:26
是啊,其实很多简单的问题只用简单的几句话都讲明白了,没必要长篇大论

说的在理啊
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表