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

必须声明标量变量 @sum_level。_C++ Primer 笔记 - 变量

0762cd89b11651137e971cc858578db7.png

变量

2.2.1 变量定义

  • 何为对象?

83639e9c7bfa61f39570acb82cde0b5e.png
  • 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。
  • 如果是内置类型的变量未被显式初始化,它的值由定义的位置决定。定义于任何函数体之外的变量被初始化为 0。一种例外情况是,定义在函数体内部的内置类型变量将不被初始化(uninitialized)。一个未被初始化的内置类型变量的值是未定义的,如果试图拷贝或以其他形式访问此类值将引发错误。
  • 定义于函数体的内置类型的对象如果没有初始化,则其值未定义。类的对象如果没有显式地初始化,则其值由类确定。

2.2.2 变量声明和定义的关系

  • 变量声明规定了变量的类型和名字,在这一点上定义与之相同。但是除此之外,定义还申请存储空间,也可能会为变量赋一个初始值。
  • 如果想声明一个变量而非定义它,就在变量名前添加关键字 extern,而且不要显式地初始化变量:
extern int i;       // 声明 i 而非定义 i
int j;              // 声明并定义 j
  • 在函数体内部,如果试图初始化一个由 extern 关键字标记的变量,将引发错误。
  • 变量能且只能被定义一次,但是可以被多次声明。
  • 声明和定义的区别看起来也许微不足道,但实际上却非常重要。如果要在多个文件中使用同一个变量,就必须将声明和定义分离。此时,变量的定义必须出现在且只能出现在一个文件中,而其他用到该变量的文件必须对其进行声明,却绝对不能重复定义。

2.2.3 标识符

  • C++ 的标识符(identifier)由字母、数字和下划线组成,其中必须以字母和下划线开头。标识符的长度没有限制,但是对大小写字母敏感。
  • 变量命名规范:

d404eeb7d01657e03622ade703577a2e.png

2.2.4 名字的作用域

  • 作用域(scope)是程序的一部分,在其中名字有特定的含义。C++ 语言中大多数作用域都以花括号分隔。
  • 同一个名字在不同的作用域中可能指向不同的实体。名字的有效区域始于名字的声明语句,以声明语句所在的作用域末端为结束。
  • 作用域能彼此包含,被包含(或者说被嵌套)的作用域称为内层作用域(inner scope),包含着别的作用域的作用域称为外层作用域(outer scope)。
  • 作用域中一旦声明了某个名字,它所嵌套的所有作用域中都能访问该名字。同时,允许在内层作用域中重新定义外层作用域已有的名字。

相关文章:

  • JAVA 中URL链接中文参数乱码的处理方法
  • 宝乐机器人集团作_「驰众机器人|情报」秦川集团起草的《机器人用精密摆线齿轮减速器》标准获发布...
  • java读取xml文件操作
  • 5ecsgo启动失败2错误代码2_Spring Boot 2.2 增加了一个新功能,启动飞起~
  • 现代科技概论_现代科技概论课程:力与运动3
  • 负载均衡技术全攻略
  • opencv图像分割python毕业设计_python用opencv完成图像分割并进行目标物的提取
  • SOA将使C++在2008年重现活力
  • 邮件合并保存为一个个单独的文档_巧用WPS“邮件合并”功能,让工作更加高效...
  • CIO构建网络整体安全解决方案
  • 微信小程序超级占内存_实测:微信小程序占多少内存?或许真没有你想象的那么“小”!...
  • 创新与价值
  • matlab如何求指标的权向量_层次分析法中,求出矩阵最大特征值对应的特征向量,再分别平方就是权向量么用matl......
  • js微信抢红包脚本代码_JavaScript语言基于AutoJs简易微信抢红包参考大佬修改
  • 冬天有点冰
  • 【剑指offer】让抽象问题具体化
  • 2017年终总结、随想
  • Android Studio:GIT提交项目到远程仓库
  • cookie和session
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • Just for fun——迅速写完快速排序
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 计算机常识 - 收藏集 - 掘金
  • 简单实现一个textarea自适应高度
  • 聊聊redis的数据结构的应用
  • 聊聊sentinel的DegradeSlot
  • 什么是Javascript函数节流?
  • 说说动画卡顿的解决方案
  • 思否第一天
  • 小试R空间处理新库sf
  • 云大使推广中的常见热门问题
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 数据库巡检项
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #1015 : KMP算法
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (7)STL算法之交换赋值
  • (Python) SOAP Web Service (HTTP POST)
  • (TOJ2804)Even? Odd?
  • (二)hibernate配置管理
  • (二)WCF的Binding模型
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十三)Flask之特殊装饰器详解
  • (转载)从 Java 代码到 Java 堆
  • ./configure,make,make install的作用(转)
  • .bat批处理出现中文乱码的情况