常量
1、整型常量
整型常量即以文字形式出现的整数,包括正整数、负整数和零。整型常量的表示形式有十进制、八进制和十六进制。
十进制整型常量的一般形式:[+|-]若干个0~9的数字
即符号加若干个0~9的数字,但数字部分不能以0开头,正数前面的正号可以省略。
八进制整型常量的数字部分要以数字0开头,一般形式为:
0若干个0~7的数字
十六进制整型常量的数字部分要以数字0x开头,一般形式为:
0x若干个0~9的数字及A~F的字母(大小写均可)
由于八进制和十六进制形式的整型常量一般用来表示无符号整数,所以前面不应带正负号。
2、实型常量
实型常量即以文字形式出现的实数,实数有两种表现形式:一般形式和指数形式。
一般形式:例如,12.5,-12.5等
指数形式:例如,0.345E+2表示0.345*10^2,-34.4E-3表示-34.3*10^-3。其中字母E可以大写或小写。
当以指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。例如:.123E-1,12.E2,1.E-3都是正确的,但不能写成E-3这种形式。
实型常量默认为doube型,如果后缀F(或f)可以使其成为float型。例如:12.3f。
3、字符常量
字符常量是单引号括起来的一个字符。
字符数据在内存中以ASCII码的形式存储,每个字符占1字节,使用7个二进制位。
4、字符串常量
字符串常量简称字符串,是用一对双引号括起来的字符序列。由于双引号是字符串的界限符,所以字符串中间的双引号就要用转义序列来表示。例如:
“Please enter \"Yes\" or \"No\""
表示的是下列文字:
Please enter "Yes" or "No"
字符串与字符是不同的,它在内存中的存放形式是:按串中字符的排列次序顺序存放,每个字符占一个字节,并在末尾添加'\0'作为结尾标记。例如:
"CHINA" C H I N A \0
"a" a \0
'a' a
5、布尔常量
布尔型常量只有两个:false(假)和true(真)。
变量
1、变量的声明和定义
变量在使用之前需要首先声明其类型和名称。
变量声明语句的形式如下:
数据类型 变量名1,变量名2,···,变量名n;
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器”认识“该标识符,但是声明并不一定引起内存的分配。而定义一个变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应内存单元的命名。
在C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时除外。
在定义一个变量的同时,也可以给它赋予初值,而这实质上就是给对应的内存单元赋值。例如:
int a=3;
double f=3.56;
char c='a';
在定义变量的同时赋初值还有另外一种形式,例如:
int a(3);
C++中有字符串常量,却没有字符串变量。
2、变量的存储类型
变量的存储类型决定了其存储方式。
auto存储类型:采用堆栈方式分配内存空间,属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。
register存储类型:存放在通用寄存器中。
extern存储类型:在所有函数和程序段中都可引用。
static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。
符号常量
除了可以直接用文字表示常量外,也可以为常量命名。
符号常量在使用之前一定要首先声明。常量声明语句的形式为:
const 数据类型说明符 常量名=常量值;
或
数据类型说明符 const 常量名=常量值;
例如,可以声明一个代表圆周率的符号常量:
const float PI=3.1415926;
注意 符号常量在声明时一定要赋初值,而在程序中间不能改变其值。