C++一些基本数据结构:字面常量、符号常量、枚举常量
1、常量:C++包括两种常量,字面常量和符号常量.
字面常量:指的是直接输入到程序中的值,比如:in myAge=26; myAge是一个int类型变量,而26是一个字面常量。
符号常量:指的是用名称表示的常量,就像变量一样表示,但是一旦初始化,其值就不能改变.
主要指的是:①const定义的常量:const unsigned short int studentPerClass=15;这里的studentPerClass就是一个符号常量
②使用#include定义的常量:#define studentPerClass 15 这里的studentPerClass也是一个符号变量
2、枚举常量:
枚举常量可以创建一个新类型,然后定义新的类型变量,将这些变量的取值定义为一组可能值。
定义方法: enum COLOR {RED,BLUE,GREEN,WHITE,YELLOW};
该语句执行后有两个变化:a、COLOR成为枚举的名称,成为一种新类型
b、如果没有特殊说明,默认枚举中标示符的内容为从0开始递增的整形常数,即RED=0,BLUE=1,GREEN=2,WHITE=3,YELLOW=4
当然也可以自己定义枚举常量的值:
enum COLOR {RED=100,BLUE=200,GREEN=300,WHITE=400,YELLOW=500};
例题:
#include <iostream> #include <iomanip> using namespace std; int main() { enum Days {monday,tuesday,wednesday,thursday,friday,saturday,sundy}; Days d1; d1=monday;
//d1=0;,这样赋值是错误的,只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
//如一定要把数值赋予枚举变量,则必须用强制类型转换,比如这里:d1=(enum Days)0;其意义是将顺序号为0的枚举元素赋予枚举变量a,相当于: a=monday; cout<<d1<<endl; system("PAUSE"); return 0; }
运行程序,最后打印的结果是“0”,而不是“monday”
关于枚举的几点说明:
①枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如程序中再对枚举Days的元素再作以下赋值: monday=1; tuesday=10都是错误的。
②只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。