【养成记】嵌入式挑战第8天,第二周第四讲-全局变量、局部变量、静态局部变量
课程章节:
物联网/嵌入式工程师 第二周第四讲 1-3 全局变量、局部变量、静态局部变量
课程内容:
对C语言中的全局变量、局部变量、静态局部变量做了介绍
学习笔记:
1. 概述
任何编程语言中都有变量,这节我们来先来看看全局变量、局部变量、静态变量
2. 全局变量
2.1 概述
在函数外部定义的变量,我们叫做全局变量.
特点:
(1) 在本文件中的任何函数中都可以使用。-----作用域
(2) 在定义变量的时候,系统会申请内存空间,当main()函数结束的时候,
系统会回收全局变量对应的内存空间. -----生命周期
(3) 全局变量未初始化,值默认为0
2.2 代码演示
//
// Created by au on 2022/9/12.
//
#include <stdio.h>
int global_data = 0;
void global_calc(){
printf("请输入一个整数:");
scanf("%d", &global_data);
printf("在1-%d之间,左右可以被7整除的数有:");
for (int i = 1; i <= global_data; ++i) {
if (i % 7 == 0) {
printf("%d ", i);
}
}
}
/**
*定义全局变量 global_data = 0;
设计无参数的函数global_calc(),在这个函数内部要求用户从键盘输入一个数据赋值给global_data,
然后要求 该函数输出,从1~global_data之间所有能被7整除的数据。
main函数来调⽤以下global_data这个函数。
* @return
*/
int main()
{
global_calc();
return 0;
}
运行结果
请输入一个整数:28
在1-1之间,左右可以被7整除的数有:7 14 21 28
3. 局部变量
3.1 概述
在函数内部定义的变量,我们叫做局部变量。
特点:
(1) 只能在定义它的那个函数内部使用,其他位置不能使用。----作用域
(2) 调用函数时,运行在定义变量代码的时候,系统会申请内存空间, 当定义该变量的函数调用结束后,
系统会回收局部变量对应的内存空间. -----生命周期
(3) 局部变量未初始化,值默认为随机值。
3.2 代码示例
4. 静态局部变量
4.1 概述
格式:
static 数据类型 变量名;
static int c;
特点:
(1)静态局部变量,可以改变原来变量的生命周期,当定义该变量的函数调用结束后,
系统不会回收对应的内存空间,当main()函数结束后, 内存空间才会被回收.
(2)只能在定义它的那个函数内部使用,其他位置不能使用。----作用域
(3)静态局部变量未初始化,值默认为0
4.2 代码示例
课程评价:
对C语言中的变量有了更深的了解,掌握他们的初始化,生命周期对将来在项目中的灵活应用大有裨益。