zoukankan      html  css  js  c++  java
  • c语言的精髓4

    c语言中,调用函数和被调用函数之间的数据可以通过三种方式进行传递:
      (1)实在参数和形式参数之间进行数据传递。
      (2)通过return 语句所函数值返回调用函数。
      (3)通过全局变量。但这不是一种好的方式,通常不提倡使用。
      在C语言中,数据只能从实参单向传递给形参,称为“按什”传递。也即是说,当简单变量作为实参时,用户不可能在函数中改变对应实参的值。

    在程序中,一个变量实质上是代表了“内存中的某个存储单元”。那么C程序是怎样存取这个存储单元的内容的呢?
      应该知道,计算机的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个编号,这个编号就称为内存地址。就像旅馆的每个房间都有一个房间号一样,如果没有房间号,旅馆的工作人员就无法进行管理。同样的道理,没有内存字节的编号,系统就无法对内存进行管理。因为内存的存储空间是连续的,内存中的地址号也是连续的,并且用二进制数来表示,为了直观起见,在这里我们将用十进制进行描述。
      若在程序中定义了一个变量,C编译系统就会根据定义中变量的类型,为其分配一定字节数的内存空间(在VC6.0中short int 型数据占2字节、int型数据和float型数据占4字节、double型数据占8字节、char型数据占1字节、指针变量占4字节),此后,这个变量的内存地址也就确定了。例如,若有定义:short int a,b;float x;这时,将如图8.1所示:系统为a和b各分配2个字节的存储单元,为x分配4个字节的存储单元,图中的数字只是示意的字节地址。每个变量的地址是指该变量所占存储单元的第一个字节的地址。在这里,我们称a的地址为1012,b的地址为1015,x的地址为1201
      

      一般情况下,我们在程序中只需指出变量名,无需知道每个变量在内存中的具体地址,每个变量与具体地址的联系由C编译系统来完成。程序中我们对变量进行存取操作,实际上也就是对某个地址的存储单元进行操作。这种直接按变量的地址存取变量值的方式称为“直接存取”方式。

  • 相关阅读:
    玩转git分支
    python元组、列表的异同总结
    IOS推送通知測试工具PushMeBaby
    Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
    Jmeter变量参数化及函数应用
    在Jmeter中使用自定义编写的Java测试代码
    使用LoadRunner监控Apache的步骤 (转)
    mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
    Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
    JVM调优总结-调优方法
  • 原文地址:https://www.cnblogs.com/wztblog/p/123kn.html
Copyright © 2011-2022 走看看