【C语言—普通、静态、局部、静态局部变量】1、普通全局变量
在函数外部定义的变量,这个地方num就是一个全局变量
int num=100;int main(){return 0;}
作用范围:全局变量的作用范围是程序的所有地方,用之前需要声明: int nun;声明的时候不用赋值 。
生命周期:程序运行的整个过程,一直存在,直到程序结束 。
注意:定义普通的全局变量的时候,如果不赋初值,它的默认值为0 。
2、静态全局变量
概念:定义全局变量的时候前面用修饰,这个地方num就是一个全局变量
static int num = 10;int main(){return 0;}
文章插图
作用范围:限定了静态全局变量的作用范围,只能在它定义的.c源文件中有效 。
生命周期:在程序运行过程中一直存在 。
注意:定义全局变量的时候如果不赋初值,它的值默认为0 。
3、普通局部变量
在函数内部定义的,或者复合语句定义的变量,这个地方的num就是局部变量 。
int main(){int num;}
作用范围:在函数中定义的变量,在函数中有效;在复合语句中定义的,在复合语句中有效 。
生命周期:在函数调用之前,局部变量不占用空间,调用函数的时候才为局部变量开辟空间,函数结束了,局部变量也就释放了 。
文章插图
4、静态局部变量
定义局部变量的时候前面加上修饰
作用范围:在他定义的函数或复合语句中有效 。
生命周期:第一次调用函数的时候,开辟空间赋值,函数结束后,不释放,以后再调用函数的时候,就不再为其开辟空间,也不赋初值,用的是以前的那个变量 。
#include void fun(){static int num = 1;//只有第一次调用函数时才会为其分配空间,赋初值num++;printf("%d\r\n",num);}int main(){fun();fun();fun();return 0;}
执行结果如下:
5、注意
在同一作用范围内,不允许变量重名;作用范围不同的可以重名;局部范围内重名的全局变量不起作用(就近原则) 。
- 内存换出和缓冲区释放
- 案例分享—服务器被植入挖矿程序排查
- PowerShell执行python报错——未设置python路径
- C语言CRC-16 XMODEM格式校验函数
- Python从Oracle数据库中获取数据——fetchall
- 二 JavaWeb——Servlet入门
- 简单的Java服务器功能——实现静态页面的访问
- 你敢写,我就敢送——大米云主机“首席产品体验师”火爆进行中
- web课程设计——手机销售网
- 代码 【计算机视觉】结构光——格雷码模式捕获教程1