文章目录

  • 一、变量概念
  • 二、变量本质
    • 1、变量本质 - 内存别名
    • 2、变量存储位置 - 代码区
    • 3、变量三要素

一、变量概念


变量概念 : 变量 是 既能读 , 又能写 的 内存对象 ;

与 变量 相对的一个概念是 常量 , 常量一旦初始化之后 , 就 不能修改 ;

变量定义 :

数据类型 变量标识符1, 变量标识符2, ... , 变量标识符n;

使用

int a;

定义了一个变量 a , C 语言编译器会为该变量在 内存 中 , 分配 444 字节的内存空间 ;

使用

double b;

定义了变量 b , C 语言编译器会为该变量在 内存 中 , 分配 888 字节内存空间 ;

二、变量本质


1、变量本质 - 内存别名

程序 通过 变量 申请 内存空间 , 并 为这块内存空间 命名 ;

通过 变量名 , 可以 访问 内存空间 ; 变量 相当于 一段连续的 内存空间 的 别名 , 相当于 门牌号 ;

( 变量的本质是 门牌号 , 内存别名 )

变量概念中 , 变量 是 既能读 , 又能写 的 内存对象 ;

通过 变量 读写的对象 是 内存 , 不是变量 , 变量只是 内存的别名 , 相当于门牌号 ;

2、变量存储位置 - 代码区

变量是内存标号 , 要放在内存外面 ;

程序执行时 , 变量本质是代码 , 在 代码区 存储 ;

内存四区 从下到上 : 代码区 | 全局区 | 栈区 | 堆区 ;

3、变量三要素

变量三要素 :

  • 名称
  • 大小
  • 作用域

变量的生命周期 : 变量仅在定义的大括号内有效 ;

【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )相关推荐

  1. c语言中定义结构体指针并指向一片内存空间和直接定义一个结构体变量的区别 Node *p=(Node *)malloc(sizeof(Node)); 和 Node p 两个有什么区别??? Node是一

    (来自百度解答) Node *p是定义一个Node结构体指针,指针名为p,指向一个Node结构体,并为这个结构体分配了内存空间 该结构体无命名 Node p是定义一个Node结构体,结构体名为p. 追 ...

  2. C语言内存分配-附图详解,代码区、常量区、栈区、堆区.......

    文章目录 C语言程序的内存组成 变量以及数组开辟内存空间地址大小问题 C语言程序的内存组成 不管对于那种编程语言而言,内存管理都十分重要.对于C语言程序来说,所占用的内存主要有以下几个部分:代码区(所 ...

  3. C语言学习(十一)小数在内存中是如何存储的?定点数与浮点数各自的优势在哪?规格化浮点数与非规格化浮点数又表示什么?

    C语言学习(十一)小数在内存中是如何存储的?定点数与浮点数各自的优势在哪?规格化浮点数与非规格化浮点数又表示什么? 浮点数与定点数 小数在内存中以浮点数形式存储.浮点数并不是一种数值分类,他和整数.小 ...

  4. C51编程在不同内存空间(data xdata bdata)定义变量的注意事项

    1.data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值. 2.data区内最好放局部变量. 因为局部变量的空间是可以覆盖的(某个函数的局部变量空间 ...

  5. web概念、B/C、C/S区别与优缺点以及网络通信三要素:IP、端口号、传输地址

    ## Web概念概述        ※ javaweb:             ※使用java语言开发基于互联网的项目        ※ 软件的架构:              1.C/S:Clie ...

  6. C语言 变量 函数 (类型、作用域、生命周期、存储位置)

  7. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

  8. sql语句用变量替换表名_使用内存优化表替换SQL临时表和表变量

    sql语句用变量替换表名 TempDB usage can be considered as a performance bottleneck for workloads that use SQL t ...

  9. 计算机的物理地址概念,物理地址与内存空间的概念问题

    物理地址,相当于门牌号,内存上的每个内存单位都有自己的物理地址,这个地址会对应相应的内存空间. 为什么物理地址用16进制呢? 1.计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命 ...

最新文章

  1. 【JQuery】可直接编辑的表格
  2. apm最高的记录_2020年秋季APM专业课推荐
  3. linux grep 快速,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  4. 告别2013,迎接2014
  5. MyBatisPlus的ActiveRecord实现CRUD
  6. MySQL relay log 详细参数解释
  7. Linux程序设计第二版练习题(第七章)
  8. Flash Programer 给CC2530下载Hex文件 error解决办法 汇总
  9. 【F1C100S】编译启动所需的uboot,kernel,rootfs
  10. 安装vs 2015 社区版
  11. vba字典重复key_VBA字典数据重复次数
  12. 稳压二极管和雪崩二极管的工作原理及选型学习总结
  13. 系统服务器cpu需求测算,服务器cpu占用率多少算正常
  14. 【无2022年聚合工艺考试模拟100题模拟考试平台操作
  15. 【OpenCV】3.4.0图像拼接Stitching模块介绍
  16. 时间转换数字与日期互转
  17. 有 5 个人坐在一起,问第五个人多少岁?
  18. 机器学习算法: 朴素贝叶斯算法
  19. Linux抢占式调度简介(转)
  20. 王一博VS“虚拟人”?乐华“永不塌房”的偶像计划可行吗?

热门文章

  1. objective-c如何在linux下进入Modern模式
  2. VC++软件工程师高端培训
  3. 有关SQL server connection Keep Alive 的FAQ(3)
  4. 后盾网lavarel视频项目---2、phpstorm显示类中的方法快捷键
  5. 后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息
  6. IPC之哲学家进餐问题
  7. Linux1:Linux概述
  8. sama5d3 xplained 系统加载后确认使用的网口
  9. 利用js对页面数据进行排序
  10. C语言(九)C语言概述