C语言局部变量、静态局部变量、全局变量与静态全局变量!

本文介绍了C语言中局部变量、静态局部变量和全局变量的区别。局部变量在栈上分配,每次函数调用都会重新创建;静态局部变量只初始化一次,后续调用保留上次值;全局变量在数据段分配,作用域覆盖整个文件,静态全局变量限制为本文件使用。此外,还讨论了全局变量的跨文件引用和生命周期特点。
摘要由CSDN通过智能技术生成

基本概念: 作用域:起作用的区域,也就是可以工作的范围。

代码块:所谓代码块,就是用{}括起来的一段代码。

数据段:数据段存的是数,像全局变量就是存在数据段的

代码段:存的是程序代码,一般是只读的。

栈(stack):先进后出。C语言中局部变量就分配在栈中。

 

局部变量

  普通的局部变量定义的时候直接定义或者在前面加上auto

void func1(void)

{

int i = 1;

i++;

printf("i = %d.\n", i);

}

局部变量i的解析:

在连续三次调用func1中,每次调用时,在进入函数func1后都会创造一个新的变量i,

并且给它赋初值1,然后i++时加到2,

然后printf输出时输出2.然后func1本次调用结束,

结束时同时杀死本次创造的这个i。这就是局部变量i的整个生命周期。

下次再调用该函数func1时,又会重新创造一个i,经历整个程序运算,

最终在函数运行完退出时再次被杀死。

 

静态局部变量(static) 静态局部变量定义时前面加static关键字。

总结:

1、静态局部变量和普通局部变量不同。静态局部变量也是定义在函数内部的,静态局部变量定义时前面要

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值