学习笔记(14):C语言 从小白到大神: 入门篇-变量的存储和引用,内部和外部函数...
立即学习:https://edu.csdn.net/course/play/8088/174675?utm_source=blogtoedu
1. 变量的存储类别
静态存储变量:在程序运行期间分配固定存储空间的变量
存储全局变量等
动态存储变量:在程序运行期间根据需要进行动态分配存储空间的变量
存储函数形参、局部变量、函数调用时现场的一些数据和返回的地址等
2. 局部变量的存储方式
(1)传统情形:函数调用时分配存储空间,函数执行完成后释放内存
(2)特殊情形:静态局部表变量:用static加以说明(能够保留原值,占用的存储单元不释放。在下一次调用该函数时,该变量的值就是上一次调用结束时的值)
局部静态变量说明:
(1)在静态存储区分配内存单元,程序整个运行期间不释放
(2)局部静态变量是在编译时赋予初值,只赋初值一次,在程序运行的时候,就已经有了初值,以后调用函数时不再进行赋值,而是保留上次调用结束时的值
(3)定义局部静态变量时,如果不赋初值,则系统自动赋值0
(4)虽然局部静态变量在函数调用结束后结果仍然存在,但其它函数不能引用它
(5)缺点:长期占用内存,降低了程序可读性;除非必要,尽量不使用
3. 全局变量跨文件引用
在引用该全局变量的文件中的头部做一个“外部变量说明”(使用extern),必须放在文件最开头,所有函数之前
在定义全局变量时前面增加static,则该全局变量只能在本文件中使用,其他文件不能引用
4. 函数的跨文件调用
根据函数能否被其他源文件调用,分为内部函数以及外部函数
内部函数:又称静态函数只能被本文件调用,定义时在最前边加一个static,形式如下:
static 类型标识符 函数名(形参表){...}
外部函数:不使用static定义,默认前面加了extern
调用其他文件的函数之前需要在本文件的开头声明该函数
5.static关键字用法总结
(1)在函数内部定义一个变量时使用static,该变量会存储在静态存储区,编译时进行初始化,若不赋初值,则自动初始化为0,以后调用该函数时该变量为上次调用结束后该变量的值
(2)在全局变量之前增加static,则该全局变量只能在本文件中引用
(3)在函数定义之前加static,则该函数只能在本文件中被调用
- 点赞
- 收藏
- 分享
- 文章举报
- 学习笔记(25):C语言 从小白到大神: 入门篇-结构体变量定义、引用、初始化
- C语言学习笔记:14_内部函数和外部函数
- C语言学习笔记:14_内部函数和外部函数
- C语言 day4 数组作为主要参数 局部变量 全局变量 变量的存储和引用,内部外部函数
- 学习笔记(20):C语言 从小白到大神: 入门篇-数组的指针和指向数组的指针变量-1...
- 学习笔记(27):C语言 从小白到大神: 入门篇-共用体、枚举类型、typedef
- 学习笔记(31):C语言 从小白到大神: 入门篇-将结构体写入二进制文件再读出
- 学习笔记(24):C语言 从小白到大神: 入门篇-指针数组、指针的指针、main函数参数、小结...
- 学习笔记(15):C语言 从小白到大神: 入门篇-宏定义
- 学习笔记(16):C语言 从小白到大神: 入门篇-文件包含和条件编译
- 学习笔记(28):C语言 从小白到大神: 入门篇-位的概念以及位运算符介绍
- C程序设计语言(K&R)学习笔记--3.函数、作用域、内部变量与外部变量
- 学习笔记(21):C语言 从小白到大神: 入门篇-数组的指针和指向数组的指针变量-3...
- 学习笔记(17):C语言 从小白到大神: 入门篇-指针基本概念详解
- C语言学习笔记:12_变量的存储方式和生存期
- iOS开发学习笔记 2-6 C语言部分 函数及变量的作用域
- 不同存储类型的变量的声明、内部函数、外部函数
- 作用域、全局局部变量、链接属性、存储属性、生存期、内部外部函数
- 《零基础入门学习Python》学习过程笔记【020函数的局部变量和全全局变量内部函数和闭包】
- 内部函数引用外部函数的同名变量或者全局变量,并且对这个变量有修改的报错原因