在本章最后,给出了一份术语表,记录一下,但是有很多比较简单的就不做介绍了。
术语表
1.参数(实参,argument)向函数传递的值。
2.赋值(assignment)抹去一个对象的当前值,用一个新值替代。
3.程序块(block)
4.缓冲区(buffer)
(34条消息) C++缓冲区的理解_看星星凋零的博客-CSDN博客_c++缓冲区
#include <fstream>
using namespace std;
int main()
{
//创建文件test.txt并打开
ofstream outfile("test.txt");
//向test.txt文件中写入4096个字符’a’
for (int n = 0; n < 4096; n++)
{
outfile << 'a';
}
//暂停,按任意键继续
system("PAUSE");
//继续向test.txt文件中写入字符’b’,也就是说,第4097个字符是’b’
outfile << 'b';
//暂停,按任意键继续
system("PAUSE");
return 0;
}
在第一次暂停时,我们打开test文件
是空的
当我们继续时
最终的
这说明缓冲区大小为4K个字节,当超出这个范围,将会强制刷新缓冲区,将缓冲区的数据写入输出设备。输出b的过程也说明,
缓冲区满时;
执行flush语句;
执行endl语句;
关闭文件。
以上情况会刷新缓冲区。
缓冲区存在的意义:它使得低速的输入输出设备和高速的CPU能够协调工作,避免低速的输入输出设备占用CPU,解放出CPU,使其能够高效率工作。
书中对于缓冲区的介绍
5.内置类型(built-in type)有语言定义的类型,如int,float
6.Cerr :ostream的对象,关联到标准错误,通常写入到与标准输出相同的设备。默认情况下,写到cerr的数据是不缓冲的。通常用于输出错误信息或其他不属于程序正常逻辑的输出内容。
7.字符串字面值常量(character string literal)现在我还不知道他是啥意思。。以后回来填坑。
8.cin
9.类(class)一种用于定义自己的数据结构及其相关操作的机制。
10.类 类型(class type)类定义的类型,类名即为类型名。
11.clog 关联到标准错误。默认情况下,写到clog的数据是被缓冲的。clog通常用于报告程序的执行信息,存入一个日志文件中。
12.注释(comment)
13.条件(condition)循环,if的判断条件
14.cout
15.花括号(curly brace)
16.数据结构(data structure) 数据及其所允许的操作的逻辑组合
17.编辑-编译-调试(edit-compile-debug)
18.文件结束符(end-of-file)
19.表达式(expression)
20.头文件(header)使类或其他名字的定义可被多个程序使用的一种机制。程序通过#include指令使用头文件。
21.初始化(initialize)在一个对象创建的时候赋予他一个值 对象创建,对象赋值
22.库类型(library type)标准库定义的类型,如iostream。
23.操纵符(manipulator):对象,如std::endl,在读写流的时候用来操纵流本身
24.main 操作系统执行一个C++程序是所调用的函数。每个程序必须有且只有一个名为main的函数。并且int main(){}说明main函数的返回值类型为整型int,这可能就是return 0 的原因?
25.成员函数=方法 :类定义的操作,通常通过调用成员函数来操作特定对象
26.命名空间(namespace)将库定义的名字放在一个单一位置的机制,命名空间可以帮助避免不经意的名字冲突。C++标准库定义的名字在命名空间std中,标准库=std命名空间
27.形参列表(parameter list)函数定义的一部分,指出调用函数时可以使用什么样的实参,形参也可能是空。
28.返回类型(return type)函数返回值的类型
29.源文件(source file)包含C++程序的文件。
30.标准错误(standard error)输出流,用于报告错误。标准输出,输入和标准错误通常关联到程序执行的窗口
31.标准库(standard library)一个类型和函数的集合,每个C++编译器都必须支持。标准库提供了支持IO操作的类型。c++程序员倾向于使用“库”指代整个标准库,还倾向于用库类型表示标准库的特定部分,例如用iostream库表示标准库定义IO类的部分
32.未初始化的变量(uninitialized variable)未赋予初值的变量。类 类型的变量如果未经初始化指定初始值,则按 类定义 指定的方式进行初始化。定义在函数内部的内置类型变量(局部变量)默认是不初始化的,除非有显式的初始化语句。未初始化变量是bug的常见成因。
类 类型变量用init初始化
33.()调用运算符。起到调用函数的效果。
34.++ 递增运算符,将运算对象的值加1,++i 就等价于 i = i + 1。类似的--。递减运算
35.+= 复合赋值运算符,将右侧运算运算对象加到左侧运算对象上。a+=b 等价于 a= a+b
36. .运算符。左侧运算对象必须是一个类 类型对象,右侧必须是此对象的一个成员名字。
37. :: 作用域运算符 访问命名空间中的名字(这名字可能是库中类的对象?)如std::cout
省略了一部分。