全局变量的声明与定义

博客介绍了全局变量的相关知识。全局位置只能写全局变量定义,且只能用常量初始化,不能写执行语句。全局变量生命周期与程序共存亡,在程序加载时分配空间,关闭程序时释放。其作用域是整个项目,声明可放头文件,定义只能放源文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全局位置的注意点,就是在全局的位置是不能够写一些执行语句的,只能写一些全局变量的定义,并且初始化的话也只能用常量进行初始化。

int e=1;这就可以,所以在全局的这个位置,只能用常量进行初始化。

对于指针也一样,不要  int * p=(int *)malloc(4);  不可以,用一个变量都不可以,何况用一个函数。 

另外,想在全局变量的位置 执行一个printf,打印一个 printf("asd"); 能不能打印???谁调用的它??

所以,全局变量的位置》》》除了包含头文件这些预处理指令之外,这块能够写的东西就是全局变量,而且不要用变量初始化,也不能用函数初始化,只能用常量给全局变量初始化,另外全局的位置是不能写执行语句的,这块只认声明和变量的定义。

接下来看全局变量的生命周期:

与程序共存亡。

int e 是在程序加载的时候分配的空间,在程序正式运行之前(在主函数main调用之前)分配的空间。当执行到int a的时候,上面的这些东西都已经分配好了。

结束时 关闭程序/关闭软件,才会被释放掉。

接下来说作用域:
因为是全局变量,全局就是整个项目,所有的文件都认识这个 e。

 

 

既然声明可以出现多个(int e;),那么一般的把全局变量的声明放在头文件里面,其他的文件一包含头文件就可以了,而定义(int e=12;)只能放在源文件中,定义如果放在头文件中,那么其他文件一包含,e就重定义了。所以全局变量的声明可以放在头文件里,全局变量的定义只能放在.c源文件中。

转载于:https://www.cnblogs.com/dabing0983/p/10569958.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值