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)