×

枚举型是什么类型

枚举型是什么类型(C++中枚举是什么类型)

admin admin 发表于2023-06-25 15:18:11 浏览35 评论0

抢沙发发表评论

本文目录

C++中枚举是什么类型


如果一个变量只有几种可能的值,可以定义为枚举类型。
枚举类型就是将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。
enum
{sun,
mon,
tue,
wed,
thu,
fri,
sat}
workday,
weekend
;
其中sun,
mon,....,sat称为枚举元素或枚举常量,为用户定义的标识符,所代表的意义由用户决定,在程序中体现出来。
1、枚举元素为常量,不可赋值运算。
sun=0;
mon=1;
2、在定义枚举类型的同时,编译程序按顺序给每个枚举元素一个对应的序号,序号从0开始,后续元素依次加1。
3、可以在定义时人为指定枚举元素的序号值。
enum
weekday
{sun=9,
mon=2,
tue,
wed,
thu,
fri,
sat};
4、只能给枚举变量赋枚举值,若赋序号值必须进行强制类型转换。

什么是c语言里面的枚举类型


枚举是用标识符表示的整型常数集合,这些常数是该类型变量可取的合法值,这些标识符称为枚举常量。
定义:enum《枚举名》{《标识符1》,《标识符2》...《标识符n》};
比如enum weekday{sun,mon,tue};
就表示定义了3个枚举型常量,默认他们的值是从0开始,依次递增,也就是sum=0,mon=1,tue=2
你也可以直接给他们赋值,比如enum weekday{sun=1,mon,tue};
如果这样的话mon的值就为2,tue的值就为3.
你也可以用其他变量代替枚举常量的值,比如
enum weekday{sun,mon,tue}a,b,c;
a=sun;
b=mon;
c=tue;
如果输出的话a=0,b=1,c=2

c语言中的布尔类型、枚举类型是个什么概念


布尔类型 bool 只有两个值,false 和 true,如果变量值为 0 就是 false,否则为 true,布尔变量只有这两个值。如:
bool pb= -1.5; // pb=true;
bool pt=0; // pt=false;
枚举类型是以 enum 关键字定义的一个类型,定义的枚举变量只能取类型中的常量。
enum STU{ABD,BC,CD};
enum STU T=ABD; // 正确 ,T=0,因为枚举类型的第一个常量的值从 0 开始。
T=0; // 错误,枚举类型只能取枚举常量的值。

枚举是什么意思


枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。举个例子,颜色也可以定义成枚举类型,它可以包含你定义的任何颜色,当需要的时候,只需要通过枚举调用即可,另外比如说季节(春夏秋冬)、星期(星期一到星期日)等等这些具有共同投特征的数据都可以定义枚举。

什么是枚举型数据


1、枚举行数据是一种数据类型,这种数据类型只包含自定义的特定数据,是一组有共同特性的数据的集合。

2、枚举型数据的自定义特定数据,比如颜色可以定义成枚举类型,可以包含所定义的任何颜色,当需要的时候,只需要通过枚举调用即可,具有共同投特征的数据都可以定义枚举。

什么叫枚举类型,还有什么类型


很高兴能为您解答:
枚举型就是将所有的通过方正的排布方便计算数目。
还有很多其他的类型。
列表型:通过列表格的方法观察。
树状图型:通过画树状图理清。
希望对您有帮助~
望采纳

什么叫枚举型


  一、类型定义
  类型定义的语法格式:
  type
  《标识符1》=《类型1》;
  《标识符1》=《类型1》;
  ……
  《标识符n》=《类型n》;
  二、枚举类型
  通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序识一致的。枚举类型的形式:(标识符1,……,标识符n)
  例如: type daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)
  枚举元素只能是标识符,而不能是数值常量或字符常量。例如以下的定义是错误的:
  type daystype=(’sun’,’mon’,’tue’,’wed’,’thu’,’fri’,’sat’)
  枚举元素是标识符,不要把作为枚举元素的标识符视作变量名,它不能被赋值。同一个枚举元素不能出现在两个或两个以上的枚举类型定义中。例如以下的定义是错误的:
  type daytype1=(monday,tuesday);
  daytype2=(monday,wednesday);
  可以将枚举类型的定义和变量的定义结合在一起。例如:var a:(monday,tuesday,sunday)
  枚举类型属于顺序类型。根据定义类型时各枚举元素的排列顺序确定它们的序列,序列号从0开始
  例如:已经定义daystype
  ord(sunday)=0,succ(sunday)=monday,pred(friday)=thursday
  但是枚举类型中的第一个元素没有前趋,最后一个元素没有后继。Turbo Pascal不允许直接读写枚举值,所以枚举值的输出常用case语句间接的输出。枚举值的输入,则要一一判断读入字符是否是枚举类型的标识符。若是才能赋给枚举变量,否则就会出错。
  例如:枚举值的输出
  case day of
  sunday:write(’sunday’);
  monday:write(’monday’);
  tuesday:write(’tuesday’);
  wednesday:write(’wednesday’);
  thursday:write(’thursday’);
  friday:write(’friday’);
  saturday:write(’saturday’);
  end;
  三、子界类型
  子界类型是由整型、字符型、枚举型、布尔型的两个常量指定该类型的值域区间。子界类型的形式:
  常量..常量 两个常量必须是同一种顺序类型。例如:a..b,要求a《=b
  例如:
  type a=1..3;
  b=’a’..’d’;
  一个子界类型继承它的常量类型的运算符和标准函数,常量类型相容的不同子界类型可以混合运算,可以赋值。可以将子界类型的定义和变量的定义结合在一起。例如:var a:1..9
  例 按月、日、年顺序读入一日期,输出该日期是这一年中的第几天。
  program date;
  var year:0..2010;
  month,i:1..12;
  day:1..31;
  dayth:integer;
  begin
  read(month,day,year);
  dyath:=0;
  for i:=1 to month-1 do
  case i of
  1,3,5,7,8,10,12:dayth:=dayth+31;
  2:if ((year mod 4=0)and(year mod 100《》0)or(year mod 400 =0)
  then dayth:=dayth+29
  else dayth=:=dayth+28;
  4,6,9,11:dayth:=dayth+30;
  end;
  dayth:=dayth+day;
  writeln(dayth)
  end.
  四、类型相容和赋值相容
  1.类型相容性
  类型相容是对参加同一运算的两个对象的类型要求。设有两个变量,如果满足下列条件之一,就说这两个变量的类型相容。
  (1)两个变量的类型相同
  a.两个变量被同一类型说明。
  例如:var a,b:1..30;
  b.两个变量的类型是同一类型标识符。
  例如:var a:1..30; b:1..30;
  c.两个变量的类型是不同的类型标识符,但在类型定义中已经说明两个标识符相同。
  例如:type date=1..100; range=date;
  var m:data;n:range;
  (2)一个变量的类型是另一个变量的子界。
  (3)两个变量的类型都是同一基类型的子界。
  (4)两个变量的类型是基类型相容的集合类型。
  (5)两个变量的类型是成分相同的串类型。
  2.赋值相容性
  赋值相容是对赋值操作的两个对象的类型要求。设赋值语句“:=”左边的变量类型为T,右边表达式的类型为E,若类型T和类型E满足下列条件之一,则称他们是赋值相容的。
  (1)T和E是相同的类型,而且类型不是文件类型,也不是具有文件类成分的构造类型。
  (2)T是实型,而E是整型或整型的子界。
  (3)T和E是类型相容的顺序类型,并且E的值不超出T所定义的值的范围
  (4)T和E是类型相容的集合类型,并且E的值不超出T所定义的值的范围
  (5)T和E是类型相容的串类型。
  当T和E是顺序类型或都是集合类型时,不仅要求这两个类型是相容的,而且要求E的值不超出T所定义的值的范围;否则将产生类型溢出,而这种错误只能在你运行程序时进行检查,因此你必须要避免不发生这种错误。