首页 > 代码库 > C++中出现的计算机术语2

C++中出现的计算机术语2

C-style strings(C 风格字符串)

C 程序把指向以空字符结束的字符数组的指针视为字符串。在 C++ 中,字符串字面值就是 C 风格字符串。C 标准库定义了一系列处理这种字符串的库函数,C++ 中将这些标准库函数放在cstring 头文件中。由于 C 风格字符串本质上容易出错,C++程序应该优先使用 C++ 标准库类 string 而少用 C 风格字符串。网络程序中大量的安全漏洞都源于与使用 C 风格字符串和数组相关的缺陷。

compiler extension(编译器扩展) 

特定编译器为语言添加的特性。依赖于编译器扩展的程序很难移植到其他的编译器。

compoundtype(复合类型)

使用其他类型定义的类型。数组、指针和引用都是复合类型。

const void*

可以指向任意 const 类型的指针类型,参见void *。

delete expression(delete 表达式)

delete 表达式用于释放由 new 动态分配的内存: delete [] p;

在此表达式中,p 必须是指向动态创建的数组中第一个元素的指针,其中方括号必不可少:它告诉编译器该指针指向数组,而非单个对象。C++程序使用 delete 取代 C 语言的标准库函数 free。

dimension(维数)

数组大小。

dynamic allyallocated(动态分配的)

在程序自由存储区中建立的对象。该对象一经创建就一直存在,直到显式释放为止。

free store(自由存储区)

程序用来存储动态创建对象的内存区域。

heap(堆)

自由存储区的同义词。

new expression(new 表达式)

用于分配动态内存的表达式。下面的语句分配了一个有 n 个元素的数组:  new type[n];

该数组存放 type 类型的元素。new返回指向该数组第一个元素的指针。C++ 程序使用 new 取代 C 语言的标准库函数 malloc。

pointer(指针)

存放对象地址的对象。

pointer arithmetic(指针算术操作)

可用于指针的算术操作。允许在指针上做加上或减去整型值的操作,以获得当前指针之前或之后若干个元素处的地址。两个指针可做减法操作,得到它们之间的差值。只有当指针指向同一个数组或其超出末端的位置时,指针的算术操作才有意义。

precedence(优先级)

在复杂的表达式中,优先级确定了操作数分组的次序。

ptrdiff_t

在 cstddef 头文件中定义的与机器相关的有符号整型,该类型具有足够的大小存储两个指针的差值,这两个指针指向同一个可能的最大数组。

size_t

在 cstddef 头文件中定义的与机器相关的无符号整型,它具有足够的大小存储一个可能的最大数组。

*operator(* 操作符)

对指针进行解引用操作获得该指针所指向的对象。解引用操作符返回左值,因此可为其结果赋值,等效于为该指针所指向的特定对象赋新值。

++operator(++ 操作符)

用于指针时,自增操作符给指针“加 1”,移动指针使其指向数组的下一个元素。

[]operator([] 操作符)

下标操作符接受两个操作数:一个是指向数组元素的指针,一个是下标 n。该操作返回偏离指针当前指向 n 个位置的元素值。数组下标从 0 开始计数——数组第一个元素的下标为 0,最后一个元素的下标是数组长度减1。下标操作返回左值,可用做赋值操作的左操作数,等效于为该下标引用的元素赋新值。 

&operator(& 操作符)

取地址操作符需要一个操作数,其唯一的操作数必须是左值对象,该操作返回操作数对象在内存中的存储地址。

void*

可以指向任何非 const 对象的指针类型。void*指针只提供有限的几种操作:可用作函数形参类型或返回类型,也可与其他指针做比较操作,但是不能进行解引用

assert

一种预处理宏,使用单个表达式作为断言条件。如果预处理变量NDEBUG 没有定义,则 assert 将求解它的条件表达式。若条件为false,assert 输出信息并终止程序的执行。

block(块)

包含在一对花括号里的语句序列。在语法上,块就是单语句,可出现在任何单语句可以出现的地方。

break statement(break 语句)

一种语句,能够终止最近的循环或者switch 语句的执行,将控制权交给被终止的循环或者 switch 后的第一条语句。

case label(case 标号)

switch 语句中跟在关键字 case 后的整型常量值。在同一个switch 结构中不能有任何两个标号拥有相同的常量值。如果 switch 条件表达式的值与其中某个标号的值相等,则控制权转移到匹配标号后面的第一条语句,从这种语句开始依次继续各个语句,直到遇到break 或者到达

switch 结尾为止。

catch clause(catch 子句)

一种语句,包括关键字 catch、圆括号内的异常说明符以及一个块语句。catch子句中的代码实现某种异常的处理,该异常的处理,该异常由圆括号内的异常说明符定义。

compound statement(复合语句)

块的同义词。 

continue statement(continue 语句)

一种语句,能够结束最近的循环结构的当次循环迭代,将控制流转移到 while或 do 的循环条件表达式,或者 for 语句头中第三个表达式。 dangling else(悬垂 else) 一个通俗术语,指出如何处理嵌套 if 语句中 if 多于 else 时发生的二义性问题。C++ 中,else 总是与最近的未匹配的 if 配对。注意使用花括号能有效地隐藏内层 if,使程序员可以控制给定的else 与哪个 if 相匹配。

declaration statement(声明语句)

定义或者声明变量的语句。声明已在 第二章中介绍。

default label(default 标号)

switch 语句中的一种标号,当计算 switch 条件所得的值与所有 case

标号的值都不匹配时,则执行 default 标号关联的语句。

exception classes(异常类)

标准库定义的一组描述程序错误的类。表6.1 列出了常见的异常。

exception handler(异常处理代码)

一段代码,用于处理程序某个部分引起的异常。是catch 子句的同义词。

exception specifier(异常说明符)

对象或类型的声明,用于指出当前的catch 能处理的异常类型。

expression statement(表达式语句)

一种语句,由后接分号的表达式构成。表达式语句用于表达式的求解。

flow of control(控制流)

程序的执行路径。

goto statement(goto 语句)

一种语句,能够使程序控制流程无条件跳转到指定标号语句。goto扰乱了程序内部的控制流,应尽可能避免使用。 

if else statement(if else 语句)

一种语句,有条件地执行 if 或else 后的代码,如何执行取决于条件表达式的真值。

if statement(if 语句)

基于指定条件值的条件分支语句。如果条件为真,则执行 if语句体;否则,控制流转到 if 后面的语句。

labeled statement(带标号的语句)

以标号开头的语句。标号是后面带一个冒号的标识符。

null statement(空语句)

空白的语句。其语法形式为单个分号。

preprocessor macro(预处理宏)

与预处理器定义的设施相似的函数。assert是一个宏。现代 C++ 程序很少使用预处理宏。

raise(引发)

常用作 throw 的同义词。C++程序员所说的“抛出(throwing)”或者“引发(raising)”异常表示一样的含义。

switch statement(switch 语句)

从计算关键字 switch 后面的表达式开始执行的条件分支语句。程序的控制流转跳到与表达式值匹配的case 标号所标记的标号语句。如果没有匹配的标号,则执行 default 标号标记的分支,如果没有提供default 分支则结束 switch 语句的执行。

terminate

异常未被捕获时调用的标准库函数。通常会终止程序的执行。 throw expression(throw 表达式) 中断当前执行路径的表达式。每个throw 都会抛出一个对象,并将控制转换到最近的可处理该类型异常的 catch 子句。

try block(try 块)

跟在关键字 try 后面的块,以及一个或多个catch 子句。如果 try 块中的代码产生了异常,而且该异常类型与其中某个catch 子句匹配,则执行这个 catch 子句的语句处理这个异常。否则,异常将由外围try 块处理,或者终止程序。

while loop(while 循环)

当指定条件为 true 时,执行目标代码的控制语句。根据条件的真值,目标代码可能执行零次或多次。