【C++】基本的数据类型(⼆)字符型常量的表⽰⽅法
前⽂介绍了⼀些基本的数据常量,这⾥我们主要来接触字符常量和字符串常量。飞乌
评价鲁迅
⾸先,是最⼩单位的常量boolean常以及最简单的字符常量。豆浆做法>镇江三中
布尔类型常量只有true和fal两个值,常⽤的赋值⽅式如 bool test=fal;
字符常量分为可显⽰的字符常量和不可显⽰的字符常量:
1. 可显⽰的字符常量写在⼀对单引号之间,如'a'、 '2'、 ','、 ' '等。这些字符常量是默认为char的,如果要定义wide-charater,我们要在定义的字符前加上L,如 L'a'。
2. 不可显⽰的字符常量,主要是⼀些Escape Sequences(转义序列)。不可显⽰的字符常量及不会显⽰在程序的运⾏结果中,如空格、换⾏等。我们在编写这些操作的时候,通常⽤到转义序列,由⼀个反斜杠(\)开始,下⾯介绍⼀些在C++中常⽤的专业序列:
newline \n alter(bell) \a
horizontal tab \t backslash \\
vertical tab \v question mark \?
backspace \b single quote \'
鸟什么弓什么carriage return \r double quote \"
formeed \f
当然,我们可以⽤这个格式来书写其他的转义序列,如 \000,这⾥的000代表三个⼋进制数字,⼋进制数字的值代表这个字符的⼗进制的值。
下⾯列举的是⼀些⽤ASCⅡ字符来表⽰的字⾯常量:
\7 (bell) \12 (newline) \40 (blank)
\0 (null) \62 ('2') \115 ('M')
同样,我们也可以利⽤⼗六进制的转义字符来表⽰⼀些字⾯常量,如 \xddd。
输血反应有哪些
—————————————————————————————————————————————————
前⾯介绍的字⾯常量都是由基本的内建型数据类型构成的,下⾯是关于字符串字⾯常量的⼀些介绍,这要更加复杂。字符串常量是由字符常量组成的阵列,他是在双引号中的字符常量,可以有零个或者更多个字符组成,也可以由转义序列组成。并且,正如wide charater literal,字符串也可以通过加上“L”前缀来定义。
为了与C兼容,C++的程序中会附加⼀个字符以配合那些C程序员输⼊的字符。每⼀个字符串的结尾都会由编译器附加⼀个null字符,
及“\0”。
—————————————————————————————————————————————————
有字符串联,那么也就有字符串串联了。下⾯我们介绍串联字符串的表⽰⽅法。
串联字符串常量,就是由⼏个相邻的仅被空格、标记符(tab)或者换⾏符隔开的string literals(or wide string literals)组成。这种⽤法便于将很长的字符串分解成不同的⾏以⽅便定义及解读。如下:
std::cout<<"a multi-line"
"string literal"
"using concatenation"
<<std::endl;
当这段程序被执⾏的时候,就会显⽰出:
a multi-line string literal using concatenatiion
很简单的表达,但是,如果把⼀个string literal和⼀个wide string literal串联,该怎么办呢?英语最后怎么说
std::cout<<"multi-line" L"literal"<< std::endl; //Concatenating plain and wide character string is undefined
钩弋夫人
如果我们像上⾯这样把⼀个⽆格式的string literal和⼀个wide string literal串联在⼀起,那么结果就如注释所说,是不合法的。其实在部分编译器中,这个写法是可以的,但是很多的编译器并不能识别这种写法,因此,我们在进⾏程序的编写是,不要将两种不同类型的字符串串联在⼀起。
——————————
当然,还有⼀种更简单(或者说没有多⼤⽤途)的⽅法来处理这些⽐较长的字符串,就是通过在字符串的⾏末加上“\”。这样,下⼀⾏的内容我们会认为跟这⼀⾏⼀在同⼀个字符串内的。如下:
//A"\"before a new line ignores the line break
std::cou\
t<< "Hi"<<st\
d::endl;
上⾯的语句和下⾯语句的作⽤是⼀样的
std::cout<< "Hi"<<std::endl;
那么,我们就可以把⼀个很长的字符串常量通过“\”来隔开:
std::cout<< "a multi-line \
string litreral \
using a backslash"<<std::endl;
需要注意的是,利⽤反斜杠来分⾏的时候⼀定要把反斜杠写在每⼀⾏的最后(在反斜杠后⾯不能有注
释或者空格),同样,下⼀⾏的⽂字不能有缩进,因为下⼀⾏的所有内容都是包括在这个字符串内的。
这⼏篇讲述了基本的数据类型和⼀些常量的表⽰⽅法,后⾯,我们会接触到变量的⼀些表⽰⽅法。