【C++Primer笔记】1. 第一章 开始
前言
本笔记的目的为记录下读《C++ Primer》时一些需要注意和不懂的点,便于巩固和温习,不然可能看完了就忘了。
本节知识点
main函数
-
通常程序的返回值为0代表成功,返回值为1代表失败。
-
main函数的返回值必须为int。
输入输出
-
输入输出有关的:
- 库:iostream;
- 类型:istream和ostream;
- 对象:cin(标准输入),cout,cerr和clog(输出程序运行时的一般性信息)。
-
<<叫做输出运算符,其左侧必须是一个ostream对象,右侧是要打印的值。它的作用是把给定的值写入ostream对象中。 -
输出运算符的计算结果就是其左侧的ostream对象。
如
cout << 1 << endl;等价于
(cout << 1) << endl;因此可以连起来传递。
-
>>为输入运算符,它的左侧为一个istream对象,右侧为运算对象。它的作用是从istream对象中读入数据,并存入所给对象中。 -
输入运算符的计算结果也是其左侧的istream对象。
如
cin >> v1 >> v2;等价于
(cin >> v1) >> v2;也等价于
cin >> v1; cin >> v2;感觉这个用法比较神奇🙄。
-
endl是一个被称为操纵符的特殊值。写入endl的作用是结束当前行,并将缓冲区中的内容刷到设备中。缓冲刷新可以保证程序目前为止产生的输出都真正写入输出流中,而不是在内存中等待。
命名空间
- 命名空间可以解决名字冲突问题。
- 标准库定义的所有名字都在命名空间std中。
注释
-
编译器会忽略注释,因此注释对程序的性能不会造成任何影响。
-
修改代码时,不要忘了更新注释。(不然给别的程序员或者自己误解,就等着被骂吧~)
-
/*和*/叫注释界定符,不能嵌套。 -
神奇的实验
cout << "/*"; // 输出/* cout << /* "*/" */; // 错误 cout << /* "*/" /* "/*" */; // 输出空格/*空格
控制流
for语句
for(初始化语句; 循环条件; 表达式)
读取数量不定的输入数据
while (cin >> value)
原理是istream对象遇到文件结束符(end-of-file,EOF)或遇到无效的输入(如value是int而cin读入的对象是float)时,它的状态会变为无效,导致条件变为假。
EOF的不同键入方式:
Windows: ctrl+z,然后回车(实测了以下,确实)
Unix: ctrl + d
风格
C++语言的风格自由,但要坚持使用某种风格。
类简介
- 一个类定义了一个类型,以及与其关联的一组操作。
- 成员函数是类中的一个函数,也叫方法,可通过点运算符
.来访问,调用运算符()来调用。
小结
本节是书中的 第1章 开始 中的全部内容。这一章主要讲了一些C++的基础知识,包括main函数、输入输出、命名空间、注释、控制流等,最后还对类进行了简单的介绍。书中利用第一章的知识在最后实现了一个书店程序。
本章读起来还算比较轻松,get了一些小知识点,如>>和<<的返回值,以及读取数量不定的数据的方法等。相信第一章中的很多知识点在后面会做一个更详细的介绍。