7-4 作用域详解

本文详细介绍了C语言中的作用域规则,包括局部变量的代码块作用域,函数名和全局变量的文件作用域,以及同名变量的掩蔽规则。强调了变量必须先定义后使用,全局变量和函数的作用域覆盖整个源文件,而局部变量的作用域限制在其定义的代码块内。C89和C99标准对于变量定义位置的不同规定也进行了说明,同时指出在作用域交叠时,小作用域变量会掩蔽大作用域的同名变量。
摘要由CSDN通过智能技术生成

7.4.1 局部变量的代码作用域

(1)代码块基本可以理解为一对大括号{}括起来的部分。
(2)代码块不等于函数,因为if,while,for都有{}。所以代码块是 <= 函数的。
(3)局部变量的作用域是代码块作用域,也就是说一个局部变量可以被访问和使用的范围仅限于定义这个局部变量的代码块中定义式之后的部分。

7.4.2 函数名和全局变量的文件作用域

(1)文件作用域的意思就是全局的访问权限,也就是说在整个.c文件中都可以访问这些东西。这就是平时所说的局部和全局,全局就是文件作用域。
(2)详细准确的说:函数和全局变量的作用域是定义所在的整个.c文件之内定义式之后的部分。
总结:
1、不管是局部变量、全局变量、函数,都要先定义才能使用;
2、严格来说,我们上面的总结是错误的。准确的说:全局变量/函数的作用域都是自己所在的代码块文件,但是定义式之前的部分因为缺少声明所以没法用,解决方案是:1、把它定义到前面去;2、定义到后面但是在前面加声明;局部变量因为无法声明,所以只能定义到前面去。
3、在C89标准的编译器中(现在很多编译器还延续使用C89标准),所有的局部变量必须先定义在最前面,在变量定义之前不能有一句执行代码。在C99标准的编译器中(gcc兼容c99标准)可以允许在代码块内任意地方定义变量。但是允许定义的变量还是只能使用在定义了之后,定义之前还是不能用的。

7.4.3 同名变量的掩蔽规则

ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

非主流的豆瓣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值