施工提示
本博文尚在施工中,内容并未完成且可能变更。
速查:C++ 语法
提示
本章是 C++ 基础语法的总结,适用于有其他编程语言经验的读者快速熟悉 C++ 语法。
C++ 基础语法包括:
语句以分号
;
结束。语句块以一对花括号
{...}
标识范围。缩进与换行并不重要。注释:
行内注释:
//
将其同一行内右侧的内容标记为注释。多行注释: 包含在
/*
与*/
内部的内容标记为注释。多行注释不支持嵌套,因此在调试中注释掉多行代码时,推荐用行内注释的方式注释每一行。
变量类型
常量 const
要在多个文件中共享常量,在头文件声明中使用
extern
,在源文件定义中使用extern
并将其初始化。
浮点数:一般使用 double 而不是 float。
整数:通常使用 int
字符(char)与字符串(std::string):
字符使用单引号(如
'a'
),字符串使用双引号(如"abc"
)。不可混用。需转义的字符:引号
'
、双引号"
、问号?
与反斜线\
。C++ 字符串允许跨行:如果两个字符串之间只有空白符(空格、缩进或换行),那么它们是一个整体。
C++ 字符串的实际长度为字面长度加 1,因为它总包含一个末尾的
\0
字符。字符串 s 的
s.size()
返回字面长度,如string s = 'abc';
得到s.size()
为 3s.size()
将返回一个string::size_type
类型的无符号整数;因此,不要将其与带符号数进行运算,例如int n = -1;
将通常导致s.size() < n
为 true。字符串 s 合法索引 i 应满足 0 <= i < s.size()
我们常提到 C 风格字符串,它的类型是
const char*
,即常量字符指针。C++ 的字符串字面值并不属于 std::string 类型,而是常量字符数组。
引用:引用不是对象,只是对象的别名。引用在声明时给标识符添加
&
前缀。指针:指针记录对象的地址。指针在声明时给标识符添加
*
前缀。指针在初始化或赋值时,赋值号右侧使用取地址符
&
指针在调用指向对象时,使用解引用符
*
常量指针
Type *const p
,指向常量的指针const Type *p
控制语句:
for 循环:循环变量在循环体结束后不可使用。
范围 for 循环 C++ 11 对可迭代对象进行迭代,无需循环变量
if 条件:支持
else if
分支语句块。switch 条件:
case 标签必须是整型常量表达式。
每个 case 标签内部一般均用
break;
结尾。用
default:
处理未匹配任何 case 标签的情形。
try..catch 及 throw 语句:
常使用
<stdexcept>
库中定义的异常。基础的为std::runtime_error
。使用
err.what()
来检查错误对象 err 中包含的异常信息。throw 抛出的异常如果没有被捕获,程序将会终止。程序中任何之后的内容都不会再被执行。