• 从C语言开始看参数传递方式

    值传递与引用传递
    服务器君一共花费 29.175 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    函数与参数传递

    很久以前,软件开发的世界还是一片浑浑噩噩,不管开发什么软件都面临着复杂性这个问题,代码里面到处是goto语句,程序的流程随意跳转。众生写代码时,越写到后面越不知道自己写的是什么。这时候出现一位巨人,它就是结构化编程。

    结构化编程的基本思想是:

    • 有序地控制流程,即把程序的执行顺序限制为顺序、分支和循环这三种;
    • 把共通的处理归结为例程(函数)。
    • 函数就是这时候出现的。要使用函数,我们需要把参数传递过去处理,那么就是这个传递参数的过程,是大有学问的。我们这小节谈的是 PHP 里面的引用传值,但在这之前,我们需要了解下参数传递还有哪几种类型,我们从C语言开始谈起吧。

    C语言里的三种参数传递

    在开始之前,请务必看这篇文章: 漫谈C指针:参数传递的三道题目

    我们都知道:C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。题一为值传递,题二为地址传递,题三为引用传递。

    值传递大家都应该很清楚,作为参数的变量,传递给函数执行后,自己的变量值是不变的。它(实参)仅仅只是把值赋给了形参,自己实际上是没有参与函数运算的,参与的是形参,这个就是参数的值传递。

    地址传递呢?地址传递跟值传递也没有什么不同,值传递是把变量的值传递给形参去参与函数运算,而地址传递则把变量的地址传递给形参去参与函数运算。当然,如果函数改变了变量地址的值,实参的值也会变化的。

    最后是引用传递,也是我们本小节的重点。引用传递的调用方式与值传递一样的,而形参则引用了实参,在函数里头操作的是实参,而不是像上面两种操作形参那样。也就是函数是直接修改实参的值了。

    • 值传递的函数里操作的不是实参变量本身,只是将实参值赋给了形参。函数里操作的只是形参变量而不是实参,显示实参的值不会被函数所修改。但是引用传递函数里是用实参分别代替了形参。函数里操作的就是实参变量的本身,因此实参的值可在函数里被修改的。

    其实也没什么难的,弄懂了这些概念就好。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] Django架构流程分析 7 个条目
  2. [运维管理] 防火墙原理与应用 5 个条目
  3. [软件工程与项目管理] 浏览器的HTML解析器 8 个条目
  4. [Python程序设计] Tornado表单处理 3 个条目
  5. [软件工程与项目管理] 呈现树的构建 13 个条目
  6. [PHP程序设计] httpd.conf设置相关 3 个条目
  7. [智力开发与知识管理] 信息的类型与结构 9 个条目
  8. [计算机算法] TAOCP与算法 12 个条目
  9. [移动开发] Android里的ContentValues 2 个条目
  10. [移动开发] 从代码角度去认识HttpClient 2 个条目
  11. [C语言程序设计] C语言里的全局变量 2 个条目
  12. [智力开发与知识管理] 整体性学习步骤 9 个条目
窗口 -- [协会]