C++一些基本数据结构:字面常量、符号常量、枚举常量
2015-07-16 15:24
405 查看
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};
例题:
运行程序,最后打印的结果是“0”,而不是“monday”
关于枚举的几点说明:
①枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如程序中再对枚举Days的元素再作以下赋值: monday=1; tuesday=10都是错误的。
②只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
字面常量:指的是直接输入到程序中的值,比如: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都是错误的。
②只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
相关文章推荐
- List中的每个元素,两两为一对(不包括自身)组合
- 数据结构基础 之 二叉堆 概念篇
- 《大话数据结构》第2章 算法基础 2.9 算法的时间复杂度
- 《大话数据结构》第2章 算法基础 2.8 函数的渐近增长
- 《大话数据结构》第1章 数据结构绪论 1.2 你数据结构怎么学的?
- 《大话数据结构》第1章 数据结构绪论 1.1 开场白
- PAT 数据结构 06-图5. 旅游规划(25)Dijkstra最短路径算法
- 数据结构(一)顺序表、链表以及队列
- 第13章 数据结构基础
- 高级数据结构-树状数组总结
- 转载: 数据结构之图(存储结构、遍历)
- 数据结构基础 之 二叉堆实现堆排序
- 二叉树的存储结构与前序遍历(中序/后序原理一样)
- 《数据结构》--线性表
- 《数据结构》--和多项式链表
- java 数据结构基本算法希尔排序
- 数据结构 ---- 二叉搜索树
- 八大排序算法
- PAT 数据结构 06-图4. Saving James Bond - Hard Version (30)
- 数据结构 树状数组