C++预定义数值数据类型:(用来表示整数、浮点数和单个字符)
- 字符型 char 通常用来表示单个字符和小整数,它可以用一个机器字节来表示。
- 整型 int、 短整型 short 、长整型 long,它们分别代表不同长度的整数值。典型情况下,short 以半个字表示,int 以一个机器字表, 而 long 为一个或两个机器字 。(在32 位机器中 int 和 long 通常长度相同)
- 浮点型 float、双精度 double 和长双精度 long double 分别表示单精度浮点数、双精度浮点数和扩展精度的浮点数值。典型情况下,float 为一个字,double 是两个字,long double 为三个或四个字。
前两类被称为整值类型,可以有符号也可以无符号。
-
文字常量
文字:只能以它的值的形式指代它 常量:值不能被改变。
每个文字都有相应的类型。文字常量是不可寻址的。
1.数值常量
当一个数值出现在程序中时,它被称为文字常量。
在缺省情况下,整型文字常量被当作是一个 int 型的有符号值 ,浮点型文字常量在缺省情况下被认为是 double 型 。可以在文字常量后面加一个 L 或 l (字母 L 的大写形式或者小写形式)将其指定为 long 类型(一般情况下 我们应该避免使用小写字母 ,因为它很容易被误当作数字 1 );在整型文字常量的后面加上 u 或 U 将其指定为一个无符号数 。单精度文字常量由值后面的 f 或 F 来标示。扩展精度中值后面跟的 l 或 L 来指示 。
在整型文字常量前面加一个 0,该值将被解释成一个八进制数。而在前面加一个 0x 或 0X则会使一个整型文字常量被解释十六进制数 。
2.bool常量(无需加单引号)
单词 true 和 false 是 bool 型的文字常量。
3.字符常量
可打印的文字字符常量可以写成用单引号括起来的形式 。
一部分不可打印的字符、单引号、双引号以及反斜杠可以转义序列来表示。(以反斜杠开头)
字符文字前面可以加 L,例如L'a',称为宽字符文字,类型为 wchar_t 。宽字符常量用来支持某些语言的字符集合,如汉语、日语,这些语言中的某些字符不能用单个字符来表示。
4.字符串常量
字符串文字常量由零个或多个用双引号括起来的字符组成,不可打印字符可以由相应的转义序列来表示 ,而一个字符串文字可以扩展到多行,在一行的最后加上一个反斜杠,表明字符串文字在下一行继续 。
字符串文字的类型是常量字符数组,它由字符串文字本身以及编译器加上的表示结束的空 null 字符构成 。
如果两个字符串或宽字符串在程序中相邻,C++就会把它们连接在一起,并在最后加上一个空字符 。
-
变量
变量提供了一个有名字的内存存储区,可以通过程序对其进行读、写和处理。C++中的每个符号变量都与一个特定的数据类型相关联,这个类型决定了相关内存的大小、布局、能够存储在该内存区的值的范围以及可以应用其上的操作集。我们也可以把变量说成对象。
变量是可寻址的。
对于每一个变量 都有两个值与其相关联:数据值(右值)和地址值(左值)。
如果一个变量是在全局域内定义的,那么系统会保证给它提供初始值 0 。如果变量是在局部域内定义的,或是通过 new 表达式动态分配的,则系统不会向它提供初始值 0, 这些对象被称为是未初始化的。未初始化的对象不是没有值,而是它的值是未定义的。
C++支持两种形式的初始化
//使用赋值操作符的显式语法形式
int ival=1024;
//隐式形式,初时只被放在括号中
int inval(1024);
//每种内置数据类型都支持一种特殊的构造函数语法 可将对象初始化为 0
int ival=int(); //ival=0
double dval=double(); //double=0.0