全局变量、static 全局变量、局部变量、static 局部变量的理解(带实例)

本文详细介绍了C语言中全局变量、static全局变量、局部变量和static局部变量的概念和作用。全局变量作用域覆盖整个程序,而static全局变量限制在定义它的源文件内。局部变量在函数内有效,而static局部变量在程序运行期间只赋值一次,持续存在。通过实例代码展示了不同类型的变量在程序中的行为和作用范围。
摘要由CSDN通过智能技术生成

全局变量、static 全局变量、局部变量的理解(带实例)

全局变量

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件,包括 .c 、.cpp、.h 文件。当一个cpp文件需要使用另一个cpp文件定义的全局变量,通过用extern声明,就可以从“声明”处起,合法地使用全局变量
全局变量全部存储在静态存储区。在程序开始执行过程中给全局变量分配空间,程序执行完毕就释放空间。程序执行过程中固定的分配空间,而不需要动态进行分配是释放。

static全局变量

全局变量前加static的作用是现在全局变量的作用范围,使该全局变量只在定义全局变量的源cpp文件中有效,其他源文件不能通过extern声明使用。

局部变量

定义在函数体、块作用域、内部的变量,作用域仅限于函数体内部、块作用域里,离开函数体、块作用域就会无效。局部变量与全局变量同名时,在该函数体内、块作用域里只会使用局部变量,自动隐藏全局变量。
程序在运行期间为局部变量动态地分配存储空间

static局部变量

静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在编译时赋初值,即只赋初值一次。在程序整个运行期间都不释放

代码

extern_1.h:

static int st1 = 0;//所有包含h的头文件可以被其他文件通过extern引用

extern_1.cpp:

#include<stdio.h>
#include"extern_1.h"

int test = 1;//全局变量,可以被其他.c、.cpp、.h文件通过extern引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值