C++ 基础知识
include 预编译指令和命名空间
#include <iostream>
using namespace std;
这两行使得iostream库进入可用状态,cin和cout的定义就包含在这个库中。
#include <iostream>
此行代码称为include预编译指令,它将iostream库“包含”到程序中。cin 和 cout 在一个名为 iostream 的文件中定义,以上include 指令相当于将那个文件赋值到程序中。
using namespace std;
C++使用命名空间组织名称。命名空间是很多名称(比如cin和cout)的集合。通过以上方式指定命名空间的语句称为using预编译指令。cin和cout等名称在iostream中定义时,它们的定义指出它们在std命名空间中。
注意:
1、C++之所以有命名空间,是因为太多的东西需要命名,结果就可能是有两个或者更多的项同名,即一个名称可能具有两个不同的定义。为消除歧义,C++将不同的项划分到不同的集合中,保证同一个集合(即同一个命名空间)中没有两个项同名;
2、命名空间并不只是一个名称集合。它代表了一个C++代码主体,其中指定了某些名称的含义(比如一些定义和/或声明)。命名空间对名称进行划分,但和那些名称配合的还有大量的C++代码。
转义字符
字符前的符号\告诉编译器:\之后的字符具有特殊含义,不能引用其字面含义。这样的一个字符称为转义序列。
若希望在一个字符串常量中插入反斜杠\或插入双引号“,则必须使用"来转变”的原有功能(转义)。\\向编译器表明你需要一个真正的反斜杠\,而不是一个转义字符。\"表明需要一个真正的双引号,而不是结束一个字符串常量。
C++的部分转义序列:
*** 换行符 \n** *水平制表符 \t *响铃符 \a *反斜杠 \ \ ***双引号 \ " **
此外,C++11 支持所谓的原始字符串字面值(raw string literals),它适合有太多字符要转义的情况,该格式要求字符串以R开头,而且字符串内容要放到一对圆括号中。例如:
cout << R"(c:\files\)";