首页/ 心理学/ 正文
📎 本文网址 http://20249.geci.2211mu.com/77044

变量声明的位置变量声明的位置

✍️ 作者:航空航天 👁 阅读 2,358 💬 评论 36 ⏱ 阅读约 6 分钟

变量声明的位置变量声明的位置

本文目录

  1. 变量名和变量地址之间是什么关系?
  2. 变量已正确定义啥意思?
  3. 全局变量如何定义到对应地址?
  4. C语言中为什么要定义变量后方能使用?
  5. C语言如何定义全局变量?

变量名和变量地址之间是什么关系?

变量名是高级语言所定义的一种东西,它主要是为了方便的寻址变量,在编译过程中,每个变量都有一个变量名,每个名都对应一个应用,即变量的首字节地址。

也就是说变量名与其地址具有一对一的映射关系,然而在编译后变量的名字不存在了,C++为了区分类似于形式的变量名和真实地址就必须存在一种机制。

对于一个变量a,不加&,就表示取a的值,而加了&就是取a在内存中的地址,而后者的值只能赋给指针变量。 其实后来发现这种设计存在不良之处,也就是为什么Java,C#,删除了他们的区分,统一使用引用(与指针有细微的差别,但机制是一样)

变量已正确定义啥意思?

在使用变量之前,先定义变量的类型,然后再使用。例如:int a;定义为整型的,就是变量已经正确定义。

全局变量如何定义到对应地址?

全局变量的地址,都是编译的时候就由编译器确定好了的,是静态的。

全局变量定义到对应的地址,

举例:

unsigned char temp_A@0x00; //定义无符号变量temp_A,强制其地址为0x00

unsigned char temp_B@0x100; //定义无符号变量temp_B,强制其地址为0x100

C语言中为什么要定义变量后方能使用?

这是由于编译器对C语言标准的支持情况造成的。估计是你所用的编译器是按照C89标准执行的。

C89规定, 在C语言中, 变量的声明必须位于任何可执行语句之前;不过在C99以及C++中, 你可以在任何地方声明变量;解决方案:

1. 将文件的后缀名改为.cpp, 编译器将会以C++的方式编译他(注意: 不推荐这种方式);

2. 抛弃老版本的编译器, 换成新版;

3. 老老实实将变量全部声明在所有可执行语言的前面。

C语言如何定义全局变量?

当希望在多个源文件中共享变量或函数时,需要确保定义和声明的一致性。最好的安排是某个相关的.c文件中定义,然后在头文件.h中进行外部声明,在需要使用的时候,只要包含对应的头文件即可。

定义变量的.c文件也应该包含该头文件,以便编译器检查定义和声明的一致性。

在函数内定义的变量是局部变量,而在函数外定义的变量叫做外部变量,外部变量是全局变量。全局变量可以为本文件中其他函数所共用它的有效范围从定义变量的位置开始到本源文件结束。

建立全局变量的作用是增加了函数间数据联系的渠道。

⚠ 温馨提示:知识看完了,记得站起来活动一下,喝杯水,看看窗外——好身体和好奇心一样重要。
📌 声明:本文内容仅供参考,具体操作请咨询专业人士。