C语言中的标识符作用域
2018-01-15 创建人:Ruo_Xiao
邮箱:xclsoftware@163.com
一、定义
- 程序中该标识符可以使用的区域。
- 例如:函数内的局部变量的作用域仅限于函数体本身。
说明了两点:
(1)其他的函数无法通过该变量名访问它们。
(2)只要分属不同的作用域,不同的变量可以起相同的名字,并且可以位于相同的地址。
二、分类
- 文件作用域、函数作用域、代码块作用域和原型作用域。
- 标识符声明的位置决定了其作用域。
三、代码块作用域
1、位于一对花括号之间的所有语句称为一个代码块。
2、任何在代码块开始的位置声明的标识符都具有代码块作用域,表示它们可以被这个代码块中所有语句访问。
3、注意:在嵌套模式下,若内层和外层具有相同的变量名,则内层变量隐藏外层变量。
4、形参的作用域变迁历史:
(1)K&R C
形参的作用域开始在形参的声明处,位于函数体之外。若函数体内部声明了名字和形参名相同的局部变量,则它们将隐藏形参。
(2)ANSI C
扼制了K&R C的错误,它把形参的作用域设定到了整个函数体,故局部变量和形参将无法同名。
栗子:
int add(int a,int b)
{int a = 3; //error C2082: 形参“a”的重定义return (a+b);
}
四、文件作用域
- 任何在所有代码块之外声明的标识符都具有文件作用域。
- 表示这些标识符从它们的声明之处直到它所在文件的源文件结尾处都是可以访问的。
- 注意:在头文件中写的函数声明和变量声明,其实都是在代码块之外,故都具有文件作用域。由于#include指令,故这些声明的作用域不局限于头文件中。
五、原型作用域
- 只适用于在函数原型中声明的参数名。
- 原型中,参数名并非必须,也可以与函数定义中的参数名不一样。但禁止同一函数原型中用相同的变量名。
六、函数作用域
- 只适用于语句标签,语句标签用于goto语句。
- 实际意义如下:一个函数中所有的语句标签必须唯一。
C语言中的标识符作用域相关推荐
- C002--c语言中的标识符,关键字及变量常量的声明和使用
因为我第一个学习的计算机语言是java,因此我在学习一门新的语言时,或多或少会用学习过的语言与新学习的语言进行对比,然后找到它们之间的不同,如果没有学习过其他语言,第一次接触的计算机语言就是c语言的话 ...
- C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...
[[怪兽爱C语言]牛逼大神整理的C语言基础知识,你确定你不码下来?]https://toutiao.com/group/6577344220355363341/?iid=15906422033& ...
- html类名定义规则_好程序员分享Java语言中的标识符规则
好程序员分享Java语言中的标识符规则,在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如包名.类名.方法名.参数名.变量名等,这些符号被称为标识符.标识符可以由任意顺序的大小写字母.数字. ...
- 数字字母下划线C语言,【判断题】C语言中的标识符只能由字母、数字和下划线三种字符组成,而且第一个字符只能是字母和下划线。...
[判断题]C语言中的标识符只能由字母.数字和下划线三种字符组成,而且第一个字符只能是字母和下划线. 更多相关问题 计算机病毒按其寄生方式划分通常可分为().A.系统引导型病毒B.文件型病毒C. 在委托 ...
- C语言中变量的作用域
C语言中变量的作用域 C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同.C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量. 一.局部变量 局部变量也称为内部变量. ...
- C语言用户自定义标识符的命名规则,c语言中用户标识符的命名规则介绍
c语言中用户标识符的命名规则介绍 发布时间:2020-06-24 15:55:31 来源:亿速云 阅读:116 作者:元一 这期内容当中的小编将会给大家带来有关c语言中用户标识符的命名规则介绍,以专业 ...
- c语言中第一字符必须是,【填空题】C语言中规定标识符只能由字母、数字、下划线组成,且第一个字符必须是( ) 。...
[填空题]C语言中规定标识符只能由字母.数字.下划线组成,且第一个字符必须是( ) . 更多相关问题 [单选,案例分析题] 女性,15岁,发现贫血.黄疸5年.脾肋下2.5cm,质中.血红蛋白90g/L ...
- c语言中字符型变量的类型标识符是,C语言中类型标识符有哪些
满意答案 564vlaci 2015.10.29 采纳率:48% 等级:12 已帮助:6409人 C语言中的标识符 1) 标识符由字母.数字.下划线"_"组成,并且首字母不能 ...
- c语言变量作用域生命周期,C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期...
谭浩强书: 从存储模型可以看到,谭浩强和钱能的模型有一定的对应关系: 静态存储区 -> 全局数据区 动态存储区 -> 栈(stack) 变量的类型: 1. 局部变量和全局变量 局部 ...
最新文章
- ES6系列--对象扩展
- java 虚拟机的工作原理
- halcon学习笔记——(1)单摄像机标定
- 温州大学《深度学习》课程课件(六、机器学习实践)
- 手把手带你写一个JavaScript类型判断小工具
- 杭电4506小明系列故事——师兄帮帮忙
- 触发器创建删除等操作
- linux登录界面说明,Linux登录界面以及简单使用入门
- python-5 函数
- InnoDB存储引擎体系架构
- 三笔输入法 开发过程记录
- 实现wpf的doevents
- ai跟随路径_AI 路径寻找器(形状组合工具)-怎么使用,使用教程
- 最全的 explain解释
- 面试题详解:如何用Redis实现分布式锁?
- xilinx 官方技术资料
- 2020年机修钳工(技师)证考试及机修钳工(技师)考试软件
- 财务大集中虚拟化解决方案
- (转载)bin文件格式分析
- 【ADC】ADC介绍
热门文章
- [Dubbo实战]dubbo + zookeeper + spring 实战 (转)
- error LNK2001: 无法解析的外部符号 __imp__Shell_NotifyIconA@8
- Java开发中文件读取方式总结
- TurboMail邮件服务器荣膺“2012年度中国行业信息化最佳产品奖”
- Silverlight3实现按路径运动[原创]
- kvm虚拟机端口映射(端口转发)到宿主机
- CDH HUE集成yarn
- Cordova build构建常见问题整理
- linux ps查看进程命令
- Windows杀死结束进程图形化界面操作方法