𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary_walk
⸝⋆ ━━━┓
- 个性标签 - :来于“云”的“羽球人”。 Talk is cheap. Show me the code
┗━━━━━━━ ➴ ⷯ本人座右铭 : 欲达高峰,必忍其痛;欲戴王冠,必承其重。
👑💎💎👑💎💎👑
💎💎💎自💎💎💎
💎💎💎信💎💎💎
👑💎💎 💎💎👑 希望在看完我的此篇博客后可以对你有帮助哟👑👑💎💎💎👑👑 此外,希望各位大佬们在看完后,可以互相支持,蟹蟹!
👑👑👑💎👑👑👑
全局变量与局部变量区别
1)概念
2.1) 生命周期
全局变量:在整个程序里面都是可以使用,只不过有条件限制的
局部变量:使用受限,只能在对应 的大括号里面使用,出了作用域,生命周期结束
2.2) 存储
2.2.1)内存分配:
2.2.2)内存的使用
全局变量是存储在静态区的
局部变量是存储 在栈区的
由malloc,realloc ,cealloc函数开辟的空间都是存放在堆区的(堆区的使用取决于程序员)
堆是向上生长的。
栈:由编译器自动对内存进行分配释放,存放函数的参数值,局部变量的值等。
栈是由地地址向高地址进行增长的(向下生长)
栈中存放的内容以及存放的先后顺序:
在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可
执行语句)的地址
第二个进栈是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈 的
第三个进栈是函数中的局部变量。注意静态变量是不入栈的
静态变量:被static 修饰的变量都是静态变量,被static修饰的变量不分局部变量还是全局变量,都被称为静态变量
static修饰局部变量的作用:
改变了变量的生命周期,但是变量的作用域依然不变的
static修饰全局变量的作用:
一个全局变量在整个程序里面都是可以使用的,只不过需要用 extern 进行声明。
static 修饰的全局变量不能整个程序里面使用,只能在指定的源文件里面进行使用,其他源文件即使进行了声明也是不能使用的
全局区(静态区):
全静态局变量和变量的存储都是存储在全局区(静态区)。按是否对变量进行初始化来进行划分:初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。
常量区:常量字符串就是放在这里的(const修饰的字符串),注意只能进行读,不能进行写
代码区
存放被程序的编译后的可执行二进制代码,注意也是只能进行读的功能,不能修改。
3) 局部变量如何具有全局变量的性质
对局部变量用static进行修饰即可,注意此时变量 的作用域依然是没有改变