zoukankan      html  css  js  c++  java
  • 变量的本质

    一 变量的本质:

    变量: 既能读又能写的内存对象,称为变量。 (初始化后不能修改的内存对象称为常量)

    如图所示,定义int型变量a,编译器给a分配了32位内存(4个字节),a指向这4个字节大小的内存。给b分配了8个字节内存,b指向这段内存。

    可见:变量的本质是一段连续内存空间的别名。可以把变量当作一个门牌号。

    我们通过变量往内存中读写数据,PS: 不是向变量读写数据,而是向变量所代表的内存空间中读写数据

    二 通过变量修改内存有几种方法:

      ①直接修改:  

      int main()
      {
        int a;
        a=10; //直接赋值,直接向a代表的内存空间中写入数据
        return 0;
      }

      ②通过内存地址间接修改:  

      int main()
      {
        int a;
        a=10; //直接赋值
        printf("变量a的内存地址是:%d  ", &a);
        return 0;
      }

        

      运行得到变量a的内存地址是6487628。改写代码如下:

      int main()
      {
        int a;
        a=10; //直接赋值
        printf("变量a的内存地址是:%d ", &a);
        *((int*)6487628) = 5;  //告诉编译器,按照int类型操作从6487628开始的这段内存。
        printf("变量a的值是:%d ", a);  //运行可知,a的值被修改为5
        return 0;
      }

        ③通过指针间接修改:

      由方法②可知,可以通过内存地址修改变量,自然可以通过指针修改啊,代码:

      int main()
      {
        int a;
        a=10; //直接赋值
        printf("变量a的内存地址是:%d ", &a);
        p = &a; //指针指向a的内存地址首地址
        *p = 5;  //通过指针修改变量a的值
        printf("变量a的值是:%d ", a);
        return 0;
      }

    三 对内存空间起多个别名

      由C语言中数据类型的本质可知,对数据类型可以起别名。变量就是内存空间的别名。

  • 相关阅读:
    JSP Web第五章整理复习 JSP访问数据库
    JSP Web第四章整理复习 JSP技术基础
    JSP Web第三章整理复习 开发环境搭建
    在n个球中,任意取出m个(不放回),求共有多少种取法
    递归比较字符串是否相等
    数组求和的3种常见递归方法
    打印begin~end
    jQuery简单实现图片预加载
    HTML5语义化标签重构页面
    jQuery插件slick实现响应式移动端幻灯片图片切换特效—大全
  • 原文地址:https://www.cnblogs.com/fengxing999/p/10219335.html
Copyright © 2011-2022 走看看