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都是错误的。

②只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。

时间: 2024-08-27 12:04:23

C++一些基本数据结构:字面常量、符号常量、枚举常量的相关文章

Java编程:枚举enum中,将方法附加到枚举常量

package 枚举; //将方法附加到枚举常量 public class UnitsConverter { private static double numberToConvert = 0; public static void main(String[] args) { // TODO Auto-generated method stub if(args.length == 0) { System.out.println("Usage:java UnitsConverter<weig

【零散知识点】换码序列、枚举常量

     1.换码序列             即一种字符常量,每个换码序列表示一个字符,如'\n'为换行符. 在有限的几种换吗序列中不常见的几种列举如下: '\ooo'(o表示从0~7的任一数字)表示输出ooo表示的八进制数值对应的ASCII码字符,'\xhh'(h表示0~9.a~f.A~F中任一个)表示输出xhh表示的十六进制数值对应的ASCII码字符. '\b'回退符,运行代码"printf("suzy_c\b"):",现实如图:,即光标回退一格显示在c下方.

【转】枚举常量

1.枚举常量的定义 enum 枚举类型名{常量1,常量2,常量3,.......}: 例如定义一个星期的枚举常量:enum Week {Mon,Tue,Wed,.....}: 这就定义了一个新的数据类型:Week. Week数据类型来源于int类型(默认). Week类型的数据只能有7种取值,它们是:SUNDAY,MONDAY,TUESDAY……SATURDAY. 其中SUNDAY = 0,MONDAY = 1……SATURDAY = 6.也就是说,第1个枚举值代表0,第2个枚举值代表1,这样依

C语言的枚举常量与枚举变量

最近复习C语言的时候发现自己对枚举类型印象很模糊,于是查了一下. 例:enum Boolean{NO,YES}; 其中 NO,YES是枚举常量: 我们也可以声明枚举类型的变量. 例: enum Boolean b; b = NO; 这里 b 是枚举变量,并且其值只能为Boolean枚举列表中定义的常量 若 b = 1; 则编译会报错 原文地址:https://www.cnblogs.com/harchar/p/10422604.html

Java中怎样由枚举常量的ordinal值获得枚举常量对象

Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方 enum Season { SPRING, SUMMER, AUTUMN, WINTER } 就定义了一个季节枚举类型. 在本例中,对于Season.SPRING这个对象,Season.SPRING.name()能够得到该对象的字符串,即"SPRING":反之,由Season.valueOf("SPRING")则能够得到该对象,即Season.SPRING.也就是说,使用name

c语言:枚举常量的用法举例

1.程序: #include<stdio.h> enum os { WIN, LINUX, UNIX }; int main() { printf("%d %d %d\N",WIN,LINUX,UNIX); return 0; } 结果: 0 1 2N Press any key to continue 2.程序: #include<stdio.h> enum os { WIN=1, LINUX, UNIX=12 }; int main() { printf(&

Item 30 用enum代替int常量类型枚举,string常量类型枚举

1.用枚举类型替代int枚举类型和string枚举类型 public class Show { // Int枚举类型 // public static final int APPLE_FUJI = 0; // public static final int APPLE_PIPPIN = 1; // public static final int APPLE_GRANNY_SMITH = 2; public enum Apple { FUJI, PIPPIN, GRANNY_SMITH } pub

Java字面常量与常量池

Java中的字面常量(区别于final创建的有名常量)通常会保存在常量池中,常量池可以理解为像堆一样的内存区域.但是常量池有一个特性就是,如果常量池中已存在该常量将不会再次为该常量开辟内存 还是看个程序: package reverse; public class Reverse { public static void main(String[] args) { String s1="张汉青"; String s2="张汉青"; String s3=new Str

接口常量、类常量、枚举类

一.分析 常量的声明是每一个项目中不可或缺的,在Java1.5之前,我们只有两种方式的声明:类常量和接口常量.不过,在1.5版之后有了改进,即新增了一种常量声明方式,枚举常量.代码如下: enum Season{     Spring,Summer,Autumn,Winter; }二.场景 那么枚举常量与我们的经常使用的类常量和静态常量比有什么优势呢?  1.枚举常量更简单 先把Season枚举翻译成接口,代码如下: interface Season{     int Sprint = 0;