嵌套代码块中同名的本地变量

对于嵌套代码块而言,块里面定义了和外面同名的变量,这个块里面同时存在两个名称相同

的变量。这两个同名的变量只是名称相同,它们属于不同的变量空间,其中一个是块外面的变量,

另外一个是块里面的变量

(1)在块里面,块外面的变量仍然存在,块里面的变量空间处于主导地位,块外面的变量空间

处于服从地位。

如果在块里面使用printf函数输出同名变量的值,那么只会输出块里面的同名变量的值。

(2)在块外面,块里面的变量不存在,只存在块外面的变量。

如果在块外面使用printf函数输出同名变量的值,那么只会输出块外面的同名变量的值。

一、本地变量的定义

函数或代码块的每次运行,会产生一个独立的变量空间。这个变量空间中的变量,称为本地变量。

本地变量的英文名称是local variable

本地变量,亦称为局部变量。

函数体内部的所有变量,以及函数头参数表中的参数,它们都是本地变量。代码块内的所有变量

都是本地变量。

通常情况下,本地变量不会被默认初始化。

本地变量在使用前必须把初始值赋予它

调用函数时,函数头参数表中的参数会被赋值。因此,参数在进入函数时被初始化了。

二、本地变量的生存期和作用域

本地变量只有在函数或代码块被执行时才存在,函数或代码块结束执行后就消亡

因此,通常情况下,我们认为本地变量的生存期和作用域都被限制在代码块的大括号内

注释:函数可以视为一个代码块。某些代码块没有函数头,但是这些代码块有自己的本地变量。

如下图所示,变量b是代码块的本地变量。

本地变量b在代码块的大括号内存在,离开大括号后就消亡,如下图所示。

注释:DEV C++调试界面中蓝色小箭头所指的位置,是下一步要执行的语句。

除此之外,主函数main( )的本地变量的生存期和作用域比较特殊

主函数main( )中往往会调用自定义函数,主函数的本地变量会随着调用自定义函数而短暂消失,

随着自定义函数结束运行而复现,直到主函数main( )结束运行才消亡

三、嵌套代码块

一个代码块位于另外一个代码块中,这样的代码块被称为嵌套代码块。

如下图所示,代码块B位于代码块A中。

这样的嵌套代码块具有一些特殊性质:

①代码块B中的本地变量只在它自己的大括号内存在,离开它自己的大括号后消亡。

②代码块A中的本地变量能在代码块B的大括号内使用。

注释:因为代码块B位于代码块A中,所以代码块A中的本地变量在代码块B的大括号内存在。

若“代码块B中的本地变量的名称”与“代码块A中的本地变量的名称”相同,则在代码块B的

大括号内同时存在两个名称相同的变量:其中一个是代码块B的变量,另外一个是代码块A的

变量。这两个同名的变量只是名称相同,它们属于不同的变量空间

在块里面,块外面的变量仍然存在,块里面的变量空间处于主导地位,块外面的变量空间

处于服从地位

如果在块里面使用printf函数输出同名变量的值,那么只会输出块里面的同名变量的值。

在块外面,块里面的变量不存在,只存在块外面的变量

如果在块外面使用printf函数输出同名变量的值,那么只会输出块外面的同名变量的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值