变量有局部变量和全局变量,静态变量
对于变量的创建,其实就是向内存申请空间
局部变量的定义
- 在函数开头定义
- 在函数的复合语句中定义
- 在函数外部定义
静态变量的定义,我们是在定义变量的前面再加上个static(这里只简单的说一下),这样,一个静态变量就创建好啦。对于静态变量,在整个程序期间只初始化一次。当然,如果你只声明但没有给静态变量初始化,那么它默认初始值为0.(全局变量也是默认初始值为0)
这种对变量的定义相对来说,是很基础的,那我就不多说了
在下面的代码中,我们可以看到对局部变量的定义可以有三种,而对于全局变量,我们直接在main函数外定义就行了。

欧克,接下来,我们来认识一下变量的作用域和生命周期
作用域
变量在什么范围内有效,变量的作用取决于变量在哪里定义
生命周期
变量从创建到销毁的这段时间,变量的生命周期取决于变量的存放位置
内存存放
依据变量在内存中的存放位置,我们有可以有局部变量,静态局部变量;全局变量,静态全局变量。而局部变量存放在内存的栈区;静态局部变量,全局变量和静态全局变量都是存放在内存的静态存储区 。
我们还是可以看上面的代码
对于在mian函数外定义的变量,我们称为全局变量,他的作用域是在程序运行的这个期间,都可以运用,而它的生命周期,则是从程序的开始到结束。
对于add函数内的变量x,y,它的作用域和生命周期只有在add函数内,出了add函数就会被销毁。
而在main函数内部的a,b,t,它的作用域和生命周期在main函数内有效,而对于t1它的作用域和生命周期只在if语句内有效。

认识完作用域和生命周期是什么之后,我们来看一下静态变量,那么就更容易理解了。
我们来看一下静态变量,在这个代码中,我把sum定义为一个静态变量并初始化为0,也就只有初始化这一次。这个sum变量的作用域就只有在s函数内,它的生命周期跟全局变量一样,也是从程序的开始到结束。我们可以看到,在每次循环进入s函数内,sum加完n,它的值不会被销毁,而是会被存起来放到sum中。

总结:
生命周期:局部变量只存在函数块或代码块期间,而全局变量,存在程序开始到结束
作用域:局部变量在其定义的函数块或代码块内有效。全局变量在整个程序内有效。
对于静态变量,它的作用域与普通变量一致,取决于它在哪个区间内定义,而它的生命周期,是整个程序期间
但一般推荐使用局部变量,便于维护,可读性强。而使用全局变量,可能会导致程序出错
后续慢慢完善~
本文探讨了变量的创建、类型(局部、全局和静态)及其作用域和生命周期。强调了局部变量的便利性和全局变量可能带来的问题,提倡使用局部变量以提高代码维护性和可读性。





