C++ 数据可分为常量和变量两大类;
常量
常量是程序运行过程中不变的量;
变量是在程序运行过程中可发生变化的值;
常量和变量必须遵循 先声明,后使用 的原则;
常量可以是:
- 字面常量
- 使用关键字const 声明的常量
- 使用关键字constexpr声明的常量表达式
- 使用关键字enum 声明的枚举常量
- 使用#define 定义的常量(已废弃)
声明常量
根据书写形式常量可分为 符号常量和直接常量
直接常量 如:123,3.14,“a”, "&"
符号常量 如:const float pi=3.1415926\
根据常量的定义方法区分 常量可分为:
- const常量
const <类型名> <常量名> = <表达式>
- 必须以const开头
- 常量名为标识符
- 表达式应与常量类型一致
- 宏常量
#define <宏名> <常量>
- 宏名可以是简单的字符名,也可以是带有参数的函数名
- 常量可以是数值,字符串和函数等
变量\
变量声明\
[<存储类>]<类型名或类型定义> <变量名表>
存储类 是指变量的存储位置 一般来说有以下4种类型
- auto 一次性存储,其存储空间可被若干变量多次覆盖使用
- register 存放在通用寄存器中
- extern 在所有函数和程序段中都可引用
- static 在内存中是以固定地址存放的,在整个程序运行期间都有效
类型名或类型定义指的是变量所属的数据类型 ,一般来说指的 是基本数据类型和枚举类型,在任何变量说明语句中,不可缺少
变量名表是指声明变量的变量名称,此外,在变量的声明语句中,可以对该变量赋初值, 变量名表格式主要有以下三种:
- <变量名>\
- <变量名>=<表达式>\
- <变量名1>=[<表达式1>],<变量名2>=[<表达式3>],....
int a;
char b ='A';
float c=2.5,d,e=56.1;
变量命名规则
必须遵循标识符命名规则,即变量只能由大小写英文字母,下划线,以及阿拉伯数字组成,并且第一个字符必须是大小写英文字母或者下划线,不能是数字
合法:Student,_str, s_tro, str2
非法:2str, s-tr ,star$
有符号整数和无符号整数
符号 表示正或符。 内存中所有的数字都以位和字节的方式存储 ,一字节包含 8位,每位 要么存0 要么存1, 因为一字节的内存单元可以有256(2的8次方)个不同的值
如果这些取值是无符号的(即为正数),则一个字节可能取值为0255, 而2个字节可能取值为065535.
在这种空间如何表示负数呢?
一种是将1位用作符号位,指出其他位包含的值是正还是负。符号必须是最高有效位,因为最低有效位需要用于表示小于2的数字。
确定变量长度sizeOf();
cout << "Size of an int: " << sizeof (int);
使用 auto 自动推断类型
在有些情况下,根据赋给变量的初始值,很容易知道其类型 ,如果将变量的初始值设置为true ,就可以推断出类型为bool,使用关键字auto auto conFlippedHeads =true;
使用 typedef 替换变量类型
typedef unsigned int STRICTLY_POSITIVE_INTEGER;
STRICTLY_POSITIVE_INTEGER numEggsInBasket = 4532;
第 1 行告诉编译器,STRICTLY_POSITIVE_INTEGER 就是 unsigned int。以后编译器再 遇到已定义的类型 STRICTLY_POSITIVE_INTEGER 时,就会将它替换为 unsigned int 并继续编译。