120-C语言变量总结

本文详细介绍了C语言中的变量类型,包括全局变量、局部变量、静态变量的特性和内存区域分配。讨论了全局变量与静态全局变量的链接属性,以及如何在不同文件间共享和访问。此外,还讲解了static、const关键字的区别,以及extern的用法,强调了变量作用域、生命周期和内存管理的重要性。
摘要由CSDN通过智能技术生成

1.静态全局变量、普通全局变量、静态局部变量都保存在全局(静态)变量区(数据段),默认值都是0

全局变量:在函数外部定义的变量,尽量少用,不安全

局部变量:在函数内部定义的变量

静态变量:用static修饰,主要和const区分开

全局变量分为普通全局变量和静态全局变量

2.内存分为:代码段、全局(静态)变量区(数据段)、栈、堆

代码段:存放静态函数和普通函数,存放程序,函数文本

全局(静态)变量区(数据段):在这个区域的变量默认值都为0

栈:比较小,大概为1M左右,不用管变量的回收,这个区域的默认值都是随机值

堆:很大,Windows大约是2G,Linux大约是3G,申请后使用完需要释放,生命周期长

3.(面试)在main执行之前能不能执行其他函数,在main执行之后能不能执行其他函数呢?

答案:都是可以的,在C++中,可以在main函数前定义一个类,然后定义一个全局变量,全局变量在构造的时候,会自动调用构造函数,当全局变量生命周期结束时,会自动调用析构函数,所以在main执行之前是可以执行其他函数的,在main执行之后也是可以执行其他函数的

class A//类
{
   
	A()//构造函数
	{
   
		printf("你好\n");
	}
	~A()//析构函数
	{
   
		printf("再见\n");
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值