'\n' '\t' "Left \t Right" "one\ntwo\nthree" 另外你可以数字ASCII 码表示一个字符,这种表示方式是在反斜杠(\)之后加以8进制数或十六进制数表示的ASCII 码。在第一种(八进制octal)表示中,数字必需紧跟反斜杠(例如\23或\40),第二种(十六进制hexacedimal),必须在数字之前写一个x字符(例如\x20或\x4A)。 如果每一行代码以反斜杠inverted slash (\)结束,字符串常量可以分多行代码表示: "string expressed in \ two lines" 你还可以将多个被空格blankspace、跳跃符tabulator、换行符newline或其他有效空白符号分隔开的字符串常量连接在一起: "we form" "a single" "string" "of characters" 最后如果我们想让字符串使用宽字符(wchar_t),而不是窄字符(char),可以在常量的前面加前缀L: L"This is a wide character string" 宽字符通常用来存储非英语字符,比如中文字符,一个字符占两个字节。 布尔型常量(Boolean Literals) 布尔型只有两个有效的值:true和false,其数据类型为bool。 定义常量Defined constants (#define) 使用预处理器指令#define,你可以将那些你经常使用的常量定义为你自己取的名字而不需要借助于变量。它的格式是: #define identifier value 例如: #define PI 3.14159265 #define NEWLINE '\n' #define WIDTH 100 以上定义了三个常量。一旦做了这些声明,你可以在后面的程序中使用这些常量,就像使用其它任何常量一样,例如: circle = 2 * PI * r; cout << NEWLINE; 实际上编译器在遇到#define指令的时候做的只是把任何出现这些 常量名(在前面的例子中为PI, NEWLINE或WIDTH)的地方替换成他们被定义为的代码(分别为3.14159265, '\n'和100)。因此,由#define定义的常量被称为宏常量macro constants。 #define 指令不是代码语句,它是预处理器指令,因此指令行末尾不需要加分号semicolon (;) 。如果你在宏定义行末尾加了分号(;) ,当预处理器在程序中做常量替换的时候,分号也会被加到被替换的行中,这样可能导致错误。 声明常量declared constants (const) 通过使用const前缀,你可以定义指定类型的常量,就像定义一个变量一样: const int width = 100; const char tab = '\t'; const zip = 12440; 如果没有指定类型(如上面最后例子中最后一行),编译器会假设常量为整型int。 操作符/运算符(Operators) 前面已经学习了变量和常量,我们可以开始对它们进行操作,这就要用到C++的操作符。有些语言,很多操作符都是一些关键字, 比如add, equals等等。C++的操作符主要是由符号组成的。这些符号不在字母表中,但是在所有键盘上都可以找到。这个特点使得C++程序更简洁,也更国际化。运算符是C++语言的基础,所以非常重要。 你不需要背下所有这一小节的内容,这些细节知识仅供你以后需要时参考 。 赋值Assignation (=) 赋值运算符的功能是将一个值赋给一个变量。 a = 5; 将整数5赋给变量a。= 运算符左边的部分叫做lvalue (left value),右边的部分叫做rvalue (right value)。lvalue 必须是一个变量,而右边的部分可以是一个常量,一个变量,一个运算(operation)的结果或是前面几项的任意组合。 有必要强调赋值运算符永远是将右边的值赋给左边,永远不会反过来。 a = b; 将变量b (rvalue)的值赋给变量a (lvalue),不论a当时存储的是什么值。同时考虑到我们只是将b的数值赋给a,以后如果b的值改变了并不会影响到a的值. 例如:如果我们使用以下代码(变量值的变化显示在绿色注释部分):
|