【C++】基本的数据类型(二) 字符型常量的表示方法

前文介绍了一些基本的数据常量,这里我们主要来接触字符常量和字符串常量。

首先,是最小单位的常量boolean常以及最简单的字符常量。

布尔类型常量只有true和false两个值,常用的赋值方式如 bool test=false;

字符常量分为可显示的字符常量和不可显示的字符常量:
 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;

 需要注意的是,利用反斜杠来分行的时候一定要把反斜杠写在每一行的最后(在反斜杠后面不能有注释或者空格),同样,下一行的文字不能有缩进,因为下一行的所有内容都是包括在这个字符串内的。

这几篇讲述了基本的数据类型和一些常量的表示方法,后面,我们会接触到变量的一些表示方法。

    原文作者:繁星之尘
    原文地址: https://blog.csdn.net/altairdipper/article/details/27077529
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞