首页 / C++ / C++Primer学习笔记
C++Primer学习笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++Primer学习笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2400字,纯文字阅读大概需要4分钟。
内容图文
C++ Primer 笔记
C++会用是会用了,还是感觉基础不牢,于是励志从今天起开始每天看一点C++ Primer,争取到学期末时候把它精读完
这篇笔记仅记录了我感到不够熟悉或不够明确的部分,仅作个人学习记录
2021.3.29
第二章
2.1 基本内置类型
2.1.1 算术类型
一些不常用类型
类型 | 含义 | 最小尺寸 |
---|---|---|
wchar_t | 宽字符 | 16位 |
char16_t | Unicode字符 | 16位 |
char32_t | Unicode字符 | 32位 |
- Unicode字符是用于表示所有自然语言中字符的标准
2.1.2 类型转换
类型转换
- 给无符号类型赋超出其表达范围的值时,结果取余(即按位截断)
- 给有符号类型赋超出其表达范围的值时,结果是未定义的(undefined),此时程序可能继续工作,可能崩溃,可能产生垃圾数据
编程建议
-
避免有符号无符号类型混用
-
应避免依赖于实现环境的行为(不可移植) eg. 把int的大小看作一个确定不变的已知值
2.1.3 字面值常量
整型&浮点型
-
十进制默认有符号,8/16进制可能有可能没有
-
8进制: 0开头的整数 eg. 024
-
16进制: 0x或0X开头 eg. 0x14
-
浮点型: 默认为double,可以用小数/科学计数法表示,指数部分用E/e标识
字符&字符串
-
字符——单引号
-
字符串——双引号
字符串在结尾处会自动添加一个空字符 ‘\0’
转义序列
不熟悉的符号:
符号 | 含义 |
---|---|
\a | 报警(响铃)符 |
\b | 退格符 |
\r | 回车符(return) |
\f | 进纸符 |
指定字面值的类型
- 字符&字符串:
前缀 | 含义 | 类型 |
---|---|---|
u | Unicode 16 | char16_t |
U | Unicode 32 | char32_t |
L | 宽字符 | wchar_t |
u8 | UTF-8(仅用于字符串) | char |
- 整型:
后缀 | 最小匹配类型 |
---|---|
u / U | unsigned |
l / L | long |
ll / LL | long long |
- 浮点型:
后缀 | 类型 |
---|---|
f / F | float |
l / L | long double |
变量
2.2.1 变量定义
初始化不是赋值,初始化是创建变量时赋予其一个初始值,赋值是把对线的当前值擦除,并以一个新值来代替
-
列表初始化(list initialization)
//均可初始化一个名为unit_code的int变量 int units_code{0}; //列表初始化 //int u{2.333} //编译报错,初始值存在丢失信息的风险 int unit_code(0); int u{2.333} //编译通过,丢失部分值
-
默认初始化(default initialized)
- 定义于任何函数体外的变量被初始化为0;
- 定义证函数体内部的内置类型变量不被初始化,值为undefined,拷贝或访问它将引发错误
- 每个类各自决定其初始化对象的方式,决定是否允许不经初始化就定义对象(若允许,则由类决定对象的初始值是什么)
建议初始化每一个内置类型的变量。
2.2.2 变量声明和定义的关系
C++支持分离式编程(separate compilation)机制,将声明(declaration)和定义(definition)区分开来,变量只能被定义一次,但是可以多次声明。若一个文件想使用别处定义的名字则必须包含对其的声明,即在变量名前添加关键字extern,例如extern int i;
extern若包含初始值则变成定义,例如extern double i=2.333;
是定义而非声明
若在函数体内部,试图初始化一个extern标记的变量,会引发错误
- C++是静态类型(statically typed)语言,在编译阶段检查类型,即进行type checking,故使用变量前必须声明其类型
内容总结
以上是互联网集市为您收集整理的C++Primer学习笔记全部内容,希望文章能够帮你解决C++Primer学习笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。