变量名是用来标识某个内存块的
地址就是地址啦,如是变量名的话,用取地址运算符&就可以得到它标识的内存块的地址,
而指针变量呢,它本身也是一个变量名,只不过它标识的那块内存存放的是一个地址值

变量是地址的别名..就像刚生的小孩,你只知道他在地球上的某个位置,而不能叫出他名字,给你取个名

定义int a;时,编译器分配4个字节内存,并命名该4个字节的空间名字为a(即变量名),当用到变量名a时,就是在使用那4个字节的内存空间.
5是一个常数,在程序编译时存放在代码的常量区存放着它的值(就是5),当执行a=5时,程序将5这个常量拷贝到a所在的4个字节空间中,就完成了赋值操作.

a是我们对那个整形变量的4个字节取的"名字",
是我们人为给的,实际上计算机并不存储a这个名字,只是我们编程时给那4个字节内存取个名字好用.实际上程序在编译时,所有的a都转换为了那个地址空间了.编译成机器代码后,没有a这个说法了.a这个名字只存在于我们编写的代码中.
5不是被随机分配的,而总是位于程序的数据段中,可能在不同的机器上在数据段中的位置可能不一致,它的地址其实不能以我们常用到的内存地址来理解,因为牵扯到一个叫"计算机寻址方式"的问题,所以写很多都解释不清楚,你自己找本汇编语言的书来学一下吧.........

C语言中变量只是标识对应存储单元内的存储内容。与地址的对应关系
int a=3;
a---&a

一一对应啊,变量名只是一个便于记忆识别的名称,编译器会将他编译成相应的内存地址的.

变量都要占据一定的内存。
通过定义该变量的指针, [类型]* 指针名=你要指向的变量名
那么该指针中存储的就是你的变量的内存地址。
&你的变量名 这样就可以直接获取到你的变量地址
或者定义引用 [类型]& 引用名=变量名
该引用可通过变量的地址来对变量进行修改

变量名是给编译器看的,编译器根据变量是局部还是全局分配内存地址或栈空间,所谓的变量名在内存中不存在,操作时转换成地址数存放在寄存器中了。

编译器会将合法的变量名放到一个叫“符号表”的一个表中。
每个符号对应一个地址。当你调用此变量时,就会根据此符号表找到对应的地址,然后进行操作。

还没有运行怎么会占用内存呢?!(这一点还要怀疑吗!?)

所谓在编译期间分配空间指的是静态分配空间(相对于用new动态申请空间),如全局变量或静态变量(包括一些复杂类型的常量),它们所需要的空间大小可以明确计算出来,并且不会再改变,因此它们可以直接存放在可执行文件的特定的节里(而且包含初始化的值),程序运行时也是直接将这个节加载到特定的段中,不必在程序运行期间用额外的代码来产生这些变量。

其实在运行期间再看“变量”这个概念就不再具备编译期间那么多的属性了(诸如名称,类型,作用域,生存期等等),对应的只是一块内存(只有首址和大小),所以在运行期间动态申请的空间,是需要额外的代码维护,以确保不同变量不会混用内存。比如写new表示有一块内存已经被占用了,其它变量就不能再用它了; 写delete表示这块内存自由了,可以被其它变量使用了。(通常我们都是通过变量来使用内存的,就编码而言变量是给内存块起了个名字,用以区分彼此)

内存申请和释放时机很重要,过早会丢失数据,过迟会耗费内存。特定情况下编译器可以帮我们完成这项复杂的工作(增加额外的代码维护内存空间,实现申请和释放)。从这个意义上讲,局部自动变量也是由编译器负责分配空间的。进一步讲,内存管理用到了我们常常挂在嘴边的堆和栈这两种数据结构。

最后对于“编译器分配空间”这种不严谨的说法,你可以理解成编译期间它为你规划好了这些变量的内存使用方案,这个方案写到可执行文件里面了(该文件中包含若干并非出自你大脑衍生的代码),直到程序运行时才真正拿出来执

jstl动态取变量_C语言的变量名相关推荐

  1. bool c语言_C语言之变量

    变量 1.概念 计算机使用内存来记录数据,内存中有很多的存储位置,每个存储位置中可以记录数据. 变量在C语言中用来代表一个存储位置,通过变量来访问对应的存储位置. 变量和存储位置之间的关系由操作系统决 ...

  2. @value 静态变量_C语言基本知识:变量

    变量其实只不过是程序可操作的存储区的名称.C 中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上. 变量的名称可以由字母.数字和下划线字符组 ...

  3. java语言环境变量_JAVA语言环境变量的设置教程

    本文主要向大家介绍了JAVA语言环境变量的设置教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 安装JDK到目录,我这里是C:\Java 右键点击计算机属性 在系统变量里面建 JA ...

  4. php常量 变量,php语言的变量和常量

    php语言的变量和常量 变量和常量是php语言的一大知识点,下面我们一起来了解关于php语言的变量和常量吧,欢迎大家阅读! php语言的变量和常量 (一)常量 变量可以随时重新赋值 //$age = ...

  5. 如何理解c语言的变量,C语言中变量的理解.PDF

    C语言中变量的理解 年第 期 建建 电电 脑脑 2011 3 59 C 语言中变量的理解 潘 莉 河南经贸职业学院 东校区 河南郑州 ( 冤 450009 ) 摘 要 在很多 级语言的基础语法中都有变 ...

  6. 对指针变量取地址_C语言指针简介(amp;和*运算符)

    取地址符(&) 和  取值符(*) (1)& 运算符 :用于取一个对象的地址 例如:int *p;    p = &c;    将c的地址赋值给指针变量p,我们称p为 &quo ...

  7. vs 无法解析变量$_C语言新手常见错误(Vs使用,语法...),绝对直击痛点

    1, VS问题 1.1 运行之后,窗口看不到 解决方案:在main函数中,return 0:上面加上getchar()或者while(1); 1.2vs写代码,怎么没有行号,怎么设置呢? 解决方案:点 ...

  8. c查看变量类型_C语言的变量、常量及运算

    一学习目标 了解C语言变量的其它创建方式 了解C语言常量 了解C语言的运算符 二了解C语言常量上一节中,了解了变量是可以改变存储值的容器,与变量相对的概念则是常量,相对的含义是指可变与不可变.2.1 ...

  9. c语言静态函数调用静态变量_C语言中的静态变量和函数

    c语言静态函数调用静态变量 C中的静态变量 (Static Variables in C) Basically, when static variables are declared, they cr ...

最新文章

  1. 英伟达宣布最新自动驾驶芯片!GTC 黄教主精彩报告
  2. QTableWidgetble自定义表头排序设置
  3. 百度API地图的标注不居中显示,而显示在左上角
  4. 一人之力,毁掉一个开发者活动
  5. Docker中快速安装Mysql
  6. sql server2000中如何自动杀死死锁进程
  7. 差分输出和单端输出的区别(转载)
  8. Flutter进阶—质感设计之弹出菜单
  9. 【渝粤教育】国家开放大学2018年秋季 0553-22T色彩 参考试题
  10. 广数系统加工中心编程_数控加工中心编程技巧一文通
  11. 【YOLOV5-5.x 源码讲解】整体项目文件导航
  12. 一起来学习Windows Mobile 6.5
  13. 苹果iPhone14系列在国内供应链厂商有哪些?
  14. pmp项目管理师证书有什么用?
  15. Java基础 常见数据结构与算法 项目总结
  16. 树莓派控制16路PWM输出的PCA9685模块
  17. dede后台登陆后一片空白的解决办法汇总
  18. python大众点评网实训报告中的参考文献_python小练习(052):爬取大众点评网美食版块+数据库储存+大数据分析(二)...
  19. 综武大唐:从剑圣收徒开始(二)
  20. 在linux系统中查看组管理信息命令,Linux常用命令(五)账号和组管理

热门文章

  1. 为什么说比特币的交易属性优于储值属性
  2. 二叉树的中序遍历(递归和非递归版本)
  3. XXL-JOB v2.0.2,分布式任务调度平台
  4. EMC首席数据治理官:“受托人”是数据湖问责的关键
  5. Ubuntu下 安装 window 虚拟机
  6. 《Cisco ASA设备使用指南》一2.8 Cisco ASA吉比特以太网模块
  7. Android数据存储之SharedPreferences
  8. SQL应用中级指南 Part4:(数据字典)
  9. 趁ofo退出美市场 Uber不计成本发展共享单车
  10. 关于java的一个典型的动态代理