当前位置: 首页 > news >正文

【时时三省】(C语言基础)关于变量的声明和定义

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

可能有些人弄不清楚定义与声明有什么区别,它们是否是一回事。有人认为声明就是定义,有人认为只有赋了值的才是定义。在C语言的学习中,关于定义与声明这两个名词的使用上始终存在着混淆。不仅许多初学者没有搞清楚,连不少介绍C语言的教材也没有给出准确的介绍。

一个函数一般由两部分组成:声明部分和执行语句。声明部分的作用是对有关的标识符(如变量、函数、结构体、共用体等)的属性进行声明。对于函数而言,声明和定义的区别是明显的,函数的声明是函数的原型,而函数的定义是对函数功能的定义。对被调用函数的声明是放在主调函数的声明部分中的,而函数的定义显然不在声明部分的范围内,它是一个独立的模块。

对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的(如“inta;”),另一种是不需要建立存储空间的(如“externa ;”)。前者称为定义性声明( defining declaration ),或简称定义(definition);后者称为引用性声明( referencing declaration )。广义地说,声明包括定义,但并非所有的声明都是定义。对“int a;”而言,它既是声明,又是定义;而对“externa;”而言,它是声明而不是定义。

一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。

显然这里指的声明是狭义的,即非定义性声明。

外部变量定义和外部变量声明的含义是不同的。外部变量的定义只能有一次,它的位置在所有函数之外。

在同一文件中,可以有多次对同一外部变量的声明,它的位置可以在函数之内(哪个函数要用就在哪个函数中声明),也可以在函数之外。系统根据外部变量的定义(而不是根据外部变量的声明)分配存储单元。

对外部变量的初始化只能在“定义”时进行,而不能在“声明”中进行。所谓“声明”,其作用是声明该变量是一个已在其他地方已定义的外部变量,仅仅是为了扩展该变量的作用范围而作的“声明”。

注意:有一个简单的结论,在函数中出现的对变量的声明(除了用extern声明的以外)都是定义。在函数中对其他函数的声明不是函数的定义。

相关文章:

  • RAG轻松通-P1:分块
  • 游戏盾能够发挥哪些作用?
  • 文献阅读|基于PSMA PET/CT使用机器学习增强前列腺癌的诊断与风险评估
  • 期末作业swing水果店管理系统
  • 2.4 Python基础概念:通过一个文字冒险游戏学习编程
  • Linux网络-基础概念
  • Nginx代理缓存静态资源
  • 爬虫技术:数据获取的利器与伦理边界
  • 【CompletableFuture】常用方法(三)
  • JetsonNano详细使用笔记(二)
  • CentOS 7 虚拟机网络配置异常 典型问题:启动了NetworkManager但是network无法启动
  • 家用旧电脑搭建小型服务器操作步骤教程:一步一步本地部署到公网访问
  • 升级OpenSSL和OpenSSH 修复漏洞
  • InputStream重复读取导致文件损坏问题解决方案
  • 【C分解多位整数输出1位数2各位空格最后无空格3倒序/读取指定字符否则退出】2022-6-29
  • Flask设计网页截屏远程电脑桌面及切换运行程序界面
  • Javaweb学习——day6(JDBC入门 CRUD)
  • 【Unity】MiniGame编辑器小游戏(三)马赛克【Mosaic】
  • EPOLL相关接口和原理
  • CppCon 2016 学习:BUILDING A MODERN C++ FORGE FOR COMPUTE AND GRAPHICS
  • 网站群建设工作/淘宝网页版
  • 汽车网站开发思路/济南seo关键词排名工具
  • 网站备案要什么/18款禁用软件黄app免费
  • 山西太原网站建设/我国网络营销现状分析
  • 个人怎么做网站排名优化/网页设计制作网站图片
  • 广州网站开发定制方案/sem搜索