变量的声明,变量的作用域和生存期

全局声明
C语言中任何东西都必须知根知底,拒绝一切来路不明(身份不清)
"声明":C语言中声明就是把一个名字(c标识符)的属性进行说明。
比如该标识符是变量还是函数,是变量则又是什么类型。
一般在定义变量(或函数)时就规定了变量(或函数)的属性,所以定义也属于声明。

C程序的编译顺序是从上到下,所以我们在调用某个变量或函数时,必须先把它们
声明(定义)让系统知道该标识符的属性,再调用它们。

变量声明
函数声明

类型声明

变量的作用域与生存期


作用域:变量名能表示该内存空间的范围

全局变量:在最前面(在函数外面)定义的变量,叫全局变量
全局变量的作用域:整个工程都有效(别的文件也能调用,但是要用extern声明一下)
但是,如果一个全局变量有static修饰,那么这个全局变量的作用域就仅在本文件中了

局部变量:
在函数体内或复合语句内定义的变量,叫做局部变量
局部变量的作用域,自定义处起到函数或复合语句结束,(即到第一个花括号结束)

★不同作用域的两个变量,必是两个独立的内存空间,即使同名,(就近原则)

★形参不能改变实参:当主调函数调用被调函数实际参数是变量时,则被调函数里形参变量的值
改变时,不会影响到实际参数。
原因:形参只是被调函数里的局部变量,与实参变量是两个独立的内存空间,只是形参的值与
实参相等而已,两者互不影响。

生存期:生存周期,过了生存期,其内存空间就会被系统释放掉。

全局变量的生存期,随进程持续性。
你的程序一运行(进程),全局变量就一直存在,直到你的进程退出才释放。

局部变量的生存期:
(1)static 局部变量
static int a;
static 局部变量的生存期,随进程持续性,且其初始化只执行一次。
(2)普通局部变量
普通局部变量的生存期,是随定义它的函数或复合语句持续性。(最近的花括号)

你可能感兴趣的:(变量的声明,变量的作用域和生存期)