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

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

文章目录

一、变量概念

二、变量本质

1、变量本质 - 内存别名

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

3、变量三要素





一、变量概念


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


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


变量定义 :


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



使用


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


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


使用


double b;


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






二、变量本质



1、变量本质 - 内存别名


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


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


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



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


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



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


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



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


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



3、变量三要素


变量三要素 :


名称

大小

作用域


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


目录
相关文章
|
17天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
21天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
44 1
|
26天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
27天前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
36 1
|
30天前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
30天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
41 4
|
1月前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
53 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
22天前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
19 0
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
366 0