精华内容
下载资源
问答
  • (1)定义一个变量a,对应一块内存,a是这块内存的名字 (2)内存 a 用来存储整数(int) (3)内存都有一个称为地址的门牌号码,是一个无符号整数。 所以: int a; 普通的一句代码,背后涉

    程序设计语言从机器语言发展到汇编语言,再发展到高级语言,越来越符合人的思维。

    C 语言是高级语言中的低级语言,兼具高级语言的方便性和低级语言的效率。

    用 C 语言编程就是用 C 语言书写作战命令,指挥计算机做事。

    比如下面的程序,设置好整数a、b的值,运行后瞬间得到结果。

     

    #include <stdio.h>
    int main(void)
    {	
    	int a,b,c;
    	a=123987;
    	b=987321;
    	c=a+b;
    	printf("%d\n",c);
    
    }

    C 语言中每一个程序员用来表示数据的符号,都需要经过定义,比如:

    int a,b,c;

    (1)定义三个变量a、b、c,对应三块内存,a、b、c是这三块内存的名字,通常称为变量名

    (2)内存 a、b、c 用来存储整数(int)

    (3)内存都有一个称为地址的门牌号码,是一个无符号整数。

    所以:

    int a;

    普通的一句代码,背后涉及到内存、内存地址、内存名字、变量名字四个概念。

    &a 被编译器计算得到内存 a 的地址。

    *&a 被编译器计算,保持 a 不变,即*&抵消了。

    *x,x是指针变量,*表示得到x中地址代表的内存,*x作为左值表示向其中写数据,作为右值,表示从中取数据。

     

    展开全文
  • 变量名是否占用内存

    千次阅读 2018-01-21 02:17:41
    想看结论的直接拖到最后今天在网上看见这么一张图,里边有这么一句话不是很理解为什么这样会浪费内存空间呢,我花了三个小时在网上查了些资料,整理了一下,具体如下:变量名编译后,变成一个内存地址这个内存地址...
    想看结论的直接拖到最后

    变量名究竟是否占用内存呢?


    今天在网上看见这么一张图,里边有这么一句话不是很理解


    为什么这样会浪费内存空间呢,我花了三个小时在网上查了些资料,整理了一下,具体如下:



    变量名编译后,变成一个内存地址





    这个内存地址一般是直接存在于代码段





    那么什么是代码段呢?





    一般把程序所占的主存空间分为(从低到高):
    1.代码段
    2.数据段
    3.栈
    4.堆







    其中,代码段和数据段是编译期间就确定的

    所以在整个程序编译期间,都占用内存空间












    程序又分为编译期间运行期间







    变量名是在编译期间占用内存(所以那张截图里没说错),而大多情况下,我们讨论的是运行期间















    结论:

    变量名在  运行期间  是    不占内存的
              在  编译期间  是        占内存的



    相关资料:
    http://blog.csdn.net/qianqin_2014/article/details/51114105
    http://bbs.csdn.net/topics/70123909


    展开全文
  • ocx的内存和exe的内存如果变量名相同,那么主程序调这个变量,调用的内存是不是还在exe内存里?那么ocx的内存就无法访问到了?如果要访问ocx的内存,用什么语法?
  • 变量名是否占用内存空间?

    千次阅读 2014-12-21 14:43:34
    变量:用来标识(identify)一块内存区域,这块区域的值一般是可以更改的,这就是它“变”的由来,但是我们可以通过...变量名:是一个标识符(identifier),用来指代一块内存区域,即变量,使用变量使我们操作内存以区域
    变量:用来标识(identify)一块内存区域,这块区域的值一般是可以更改的,这就是它“变”的由来,但是我们可以通过使用如const等一些修饰符号来限定这一内存区域的操作特性(characteristic),即变量的操作特性。用const修饰的使变量不能更改的就和常量一样的变量叫做常变量。
    变量名:是一个标识符(identifier),用来指代一块内存区域,即变量,使用变量使我们操作内存以区域(area),以块(block)为单位,提高了方便性。 
    你的机器代码中,是不会出现变量名的;变量名是给我们程序员操作内存来使用的。 
    想想在汇编年代,没有变量名,我们操作内存,都是用地址来直接操作的,还要控制区域大小;当然汇编语言已经有了简单的变量。 
    对于编译器,它会搜集我们的变量名,比如我们定义了一个全局的int a;那么编译器都为我们做了什么呢?  
    它会为程序预留4个字节的空间(假设在32位平台),并把我们的变量名“a”保存进符号表,并用这个符号表的索引对应实际的空间。 
    如果下面出现b = a;那么它就会根据符号表找到变量的真正的物理位置,取得它的值,赋给b。 
    这是写编译器需要做的,我们需要建立符号表。
    但是实际在汇编层次上,操作的都是地址而已,不存在任何名称了。
    展开全文
  • vb的exe内存能不能直接同时读取ocx的内存里定义的全局变量的变量名?怎么知道一个ocx内存里有几个全局变量?
  • 变量名内存地址及符号表

    千次阅读 2018-04-01 20:26:51
    1、变量名是给编译器看的,编译器根据变量是局部还是全局分配内存地址或栈空间,所谓的变量名内存中不存在,操作时转换成地址数存放在寄存器中了。其实可以理解为是符号表起到了连接作用。 2、符号表 (此段...

    1、变量名是给编译器看的,编译器根据变量是局部还是全局分配内存地址或栈空间,所谓的变量名在内存中不存在,操作时转换成地址数存放在寄存器中了。其实可以理解为是符号表起到了连接作用。

    2、符号表 (此段摘抄网上一个课件)

         符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。对于符号表组织、构造和管理方法的好坏会直接影响编译系统的运行效率。

        在编译过程中需要不断汇集和查证出现在源程序中的各种名字的属性和特征等信息编译器使用符号表来记录名字的作用域以及绑定信息编译程序中符号表用来存放语言程序中出现的有关标识符的属性信息,符号表中的信息在编译的不同阶段都用到在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程序,不同遍所用的符号表也往往各有不同。因为每遍所关心的信息各有差异。

         符号表的属性:

          符号名 
          符号的类型
          符号的存储类别 
          符号的作用域及可视性 
          符号变量的存储分配信息 
          符号的其它属性
          数组内情向量 
         记录结构型的成员信息
         函数及过程的形参 

     

     

        符号表的组织结构           

      第一种: 把属性种类完全相同的那些符号组织在一起,构造出多个符号表常数表、变量名表、过程名表,标号表
     第二种: 把所有语言中的符号都组织在一张符号表中。组成一张包括了所有属性的庞大的符号表

       符号表例子:

       

     
    展开全文
  • vb编程语言里怎么从ocx通过变量名能不能调用exe中的内存的变量?怎么通过变量实现双向的同步变量?
  • 在汇编编译器编译时直接将变量名转换成内存地址,变量名并不占内存空间 在编译的时候编译器会把程序中出现的所有变量名都换成相对内存地址,变量名不占内存 变量名不占空间 变量:用来标识(identify)一块内存...
  • 在汇编语言中,标号、内存变量名、子程序名和宏名等都是标识符,它一般最多由31个字母、数字及规定的特殊字符(?、@、_、$)等组成,并且不能用数字开头。通常情况下,汇编语言不区分标识符中字母的大小写。标识符不能...
  • 有了前面两篇的基础,下面正式开扒变量名内存的关系,先看一段大家很熟悉的代码: inti;  scanf_s("%d",&i); int i;,在这一句就为i分配了内存(但尚未对这块内存进行初始化),所以可以通过&i直接使用...
  • Python中相同的值在内存中到底会保存几份 在Python中主要有两种数据类型, 一种是可变数据类型, 另一种是不可变数据类型 不可变数据类型 数字型: int, float, complex, bool, long 字符型: str 元 祖: tup....
  • 怎么遍历求一个ocx里关联了多少exe内存里的全局变量?求这些全局变量的变量名的做法是什么?怎么求ocx关联的变量的变量名
  • 内存 变量 指针(四)

    2015-05-19 07:22:16
    变量是一块内存区域, 对变量的常用...4.*p 这个表达式, 返回值就是p指定的那块内存区域中的数据(也许未命名, 也许其他人写的代码中已命名, 但作为被调用函数来说, 不知道变量名, 但收到了存取的地址和数据类型) ...
  • 在程序中,通过**变量名**找到存储的数据。 变量名命名规则: 1.必须为字母、数字或者下划线; 2.第一个字符必须为字母或下划线; 3.不能为关键字。 二、C语言中的基本数据类型 int 整型 32位(4字节) 有些编.....
  • 变量名

    2010-09-26 16:05:00
    变量名是让程序员操作内存用的!  对于编译器,它会收集我们的变量名:  int a: 编译器的工作: 1.为变量分配4字节的内存空间; 2.把变量名保存进符号表; 3.用这个符号表的索引对应实际的空间;  如果...
  • 变量名和变量地址

    2017-11-03 15:45:00
    俺的老早就卖了,估计当时觉得这本书写得不够好),很偶然的看到关于变量名的一段话:“变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过...
  • 为什么不能像 int a一样, 直接把这个food实例的内存地址用一个变量名来绑定,就像a一样,通过a就可以找到那块内存区域。 food p1; 确实就和int a一样的效果了,但这是在栈中实现的,在堆中不可以吗?
  • 1.在MATLAB中变量名区分大小写字母, 变量名的定义必须符合以下条件: 必须以字母开头。由字母、数字、下划线组成。 最长为31个字符。 最好不要使用系统保留的变量进行变量定义,如ans、eps、pi、Inf、NaN等。 变量...
  • 变量内存

    2019-11-06 20:36:32
    注意:不同函数中变量名可以一样,其所对应的地址不一样; 3、全局变量:作用在整个项目中,使用的前提是需要在使用的文件中进行声明 4、声明变量就是可以使用这个变量,声明不会分配内存空间 注意:如果在...
  • 变量名与变量地址

    2015-10-22 00:28:35
    变量名是高级语言所定义的一种东西,它主要是为了方便的寻址。 在编译过程中,每个变量都有一个变量名,每个名都对应一个应用,即变量的首字节地址。也就是说变量名与其地址具有一对一的映射关系,然而在编译后变量...
  • 数据类型 + 变量名,这里的变量名实际上是一个符号地址,在程序编译时,操作系统将为每个变量在内存中分配内存,所以每个变量都有一个在内存中的地址,即物理地址,并将变量的符号地址(变量名)和物理地址关联起来...
  • 今天看java资料时,被几个变量名字搞晕了,现整理思路如下。 1.类变量,对象变量: 类变量又称静态变量,就是用static修饰的,它们存在于类中,但在类的方法体之外,它的任何值得改变是属于大家共有的。而对象变量,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,849
精华内容 6,739
关键字:

内存变量名