当前位置:  编程技术>c/c++/嵌入式

引用参数和传值参数的区别深入解析

    来源: 互联网  发布时间:2014-10-18

    本文导语:  1. 我们都知道,普通的传值参数是由行参传给实参; 编译器在函数内部为每一个参数产生一个临时变量,将每一个参数压入栈(stack)中,将实参的数值保存到临时变量中。 所以才有在低端8位机中,对参数的数量有比较严格...

1. 我们都知道,普通的传值参数是由行参传给实参;

编译器在函数内部为每一个参数产生一个临时变量,将每一个参数压入栈(stack)中,将实参的数值保存到临时变量中。

所以才有在低端8位机中,对参数的数量有比较严格的限制,因为栈的深度非常有限;当然,在通用机上也有同样的问题,参数过多不合适,但通用机的栈的深度比低端机大多了;

2. 引用做参数传递的是变量的地址;

实质上传递的是变量的指针;

引用作为参数的好处是减少了临时变量对内存的开销,因此常用于对大对象的操作;

而常引用做参数就是保护参数不被修改;

附:堆和栈的知识
一个由c/C++编译的程序占用的内存分为以下几个部分

1、栈区(stack)―   由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。

2、堆区(heap) ―   一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。

3、全局区(静态区)(static)―,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放

4、文字常量区  ―常量字符串就是放在这里的。 程序结束后由系统释放

5、程序代码区―存放函数体的二进制代码。


    
 
 

您可能感兴趣的文章:

  • java中如何使参数传递按传"引用"方式进行?
  • awk print格式里面如何引用参数
  • java中如果对象是函数参数 到底是传值还是引用???
  • JAVA中函数调用时,能不能向 C/C++一样函数的入口参数可以为传出值(就是引用,或指针)
  • bash脚本参数引用的问题
  • awk print格式里面如何引用参数 iis7站长之家
  • C#中值类型与引用类型作为参数传递时的区别
  • c++将引用或者是指针作为函数参数实现实参的运算
  • 请问如何用java实现类似于c中的传引用参数的函数
  • java 里有没有类似于 c 里面的引用参数(reference parameters)
  • c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
  • c++中拷贝构造函数的参数类型必须是引用
  • 解析Android开发优化之:软引用与弱引用的应用
  • PHP变量作用域与地址引用问题解析
  • 全面解析Java中的GC与幽灵引用
  • C#中的值传递和引用传递详细解析
  • 深入解析C++中的引用类型
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 深入分析C语言中结构体指针的定义与引用详解
  • C#值类型和引用类型的深入理解
  • C/C++中指针和引用之相关问题深入研究
  • HTML5 <blockquote> 标签(定义引用)详细介绍及举例说明
  • Java中弱引用和软引用的区别以及虚引用和强引用介绍
  • JQuery 在线引用及测试引用是否成功
  • c++ const引用与非const引用介绍
  • “当某个实例不再被任何对象引用时就会被垃圾回收机制回收”,那么怎样才算是不被任何对象引用呢?
  • python共享引用(多个变量引用)示例代码
  • java的引用类型的详细介绍
  • 如何在一个package中引用另一个package中的类?
  • JSP引用JAVABEAN的问题
  • 关于在内核空间和用户空间引用一个空指针的后果很原因
  • 关于环境变量的设置和引用
  • grep 后向引用问题
  • 我的Jbuilder怎么引用我自己编写的Class文件?
  • 在aspx页面引用html页的写法
  • 没人解决吗?我在一个包中如何引用一个未打包的Class?
  • 用户定义类引用??
  • 一个简单的引用的问题
  • EJB间如何引用?
  • iso的头文件怎么在linux下引用啊
  • 请问在C文件中如何引用 C++ 生成库?
  • 引用的奇怪问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3