273 字
1 分钟
Loading
变量的生存期和作用域
2023-10-13

生存期:

指的是变量从什么时候开始,从什么时候结束。

作用域:

指的是变量的生效范围,在什么区域内可以访问。

对于本地变量而言,这两者的答案是一样的——函数的大括号内。

在不同的函数之间,变量的作用域不同,所以就算是相同名称的变量也不会互通。

比如这样:

If(a>10)

{

Int I=10;

}

I++;

这样会报错:i是一个没有声明的变量,这是因为int仅仅在if的块里,出了大括号之后的i就不是括号里被定义过的i,所以对i进行处理会出错。

你甚至可以直接用大括号来定义一个局部变量,像是这样:

{

Int a=100;

Printf(“%d”,a);

}

括号内的a不仅可以被赋值,也可参与printf这种函数,在括号后外面定义的a完全不影响括号内的a。但是,在块外面定义的变量,在块内依然有效,在所有块的最外面定义的变量为全局变量。

变量的生存期和作用域
https://vilstia.pages.dev/posts/学习笔记/c/变量的生存期和作用域/
作者
琴泠
发布于
2023-10-13
许可协议
CC BY-NC-SA 4.0