C++ Primer 第一章:一些尝试和认识

Warning

以下是一些非常无聊的知识点,附以肤浅的理解和解释,仅供参考,切勿轻信。

C++ Primer 1.4.4 示例代码

PS: 这段代码没什么用。

#include <iostream>

int main()
{
	int currVal = 0, val = 0;

	// 接收输入流的第一个数
	if (std::cin >> currVal) {
		int cnt = 1;
		// 截流
		while (std::cin >> val) {
			if (val == currVal)
				++cnt;
			else {
				std::cout << currVal << " occurs "
					<< cnt << " times " << std::endl;
				// 新接收的数位当前数,计数为1
				currVal = val;
				cnt = 1;
			}
		}
		std::cout << currVal << " occurs "
			<< cnt << " times " << std::endl;
	}
	return 0;
}

std::cout中的"::"叫做作用域运算符

如题,用来指出你在用哪个命名空间的cout。

怎样用键盘输入一个文件结束符(EoF, End of File)

Windows

Ctrl+Z,然后回车

UNIX

Ctrl+D

怎么理解“类”(Class)

类定义了行为。
你对类的实例(对象, Object)能够执行哪些操作,分别会返回怎样的结果,都是由类的作者定义的。
我们想当然地认为表达式 "1 + 1" 返回 "2",是因为C++内部已经定义和实现了整型的“+”操作。

C++在哪里定义类

C++在头文件(Header files)中定义类,标准库头文件通常没有后缀(比如iostream),包含这些来自标准库的头文件时,应当用尖括号(< >)包裹头文件名,其余的头文件应当用双引号(" ")包裹。

你不应该嵌套多行注释!

在“//”打头的单行注释中,你可以为所欲为,随意嵌套其他注释符号。

但是,以界定符“/”和“/”包裹的多行注释块中,不可以再嵌套多行注释。
不仅如此,还推荐将多行注释写成这样的形式:

/*
 *
 * // 没错,我嵌套了,但是因为我是个单行注释所以无所谓
 *    每行都应当以一个 * 打头
 *    这样显得你比较专业
 */

i++ 和 ++i 有什么区别

i++;
++i;

这样就没有区别,用哪个看你心情;

a = i++;
b = ++i;

这就显然有区别。

在最后输出的 "std::endl" 有什么作用

std::endl 是一个操作符,同时起到结束当前行(就是指下一次输出将换行)和刷新缓冲区(Buffer)的作用,这能使程序的所有输出都写进输出流中。
由于程序崩溃可能导致一部分输出还卡在缓冲区中,如果我常用std::cout来调试程序,那么就应当始终保持对缓冲区的刷新。

形参和实参的英文

形式参数:Parameters (通常简称 params)
实际参数:Arguments(通常简称 args)

posted @ 2023-09-11 22:40  紫苏薄荷  阅读(10)  评论(0编辑  收藏  举报

> To be continued