早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C++中关于指定枚举函数值的问题。教材上以这么一段我们也可以在枚举类型定义时指定枚举元素的值,例如:enumweekday{sun=7,mon=1,tue,wed,thu,fri,sat};这时sun的值是7,mon的值是1,而tue

题目详情
C++中关于指定枚举函数值的问题。
教材上以这么一段
我们也可以在枚举类型定义时指定枚举元素的值,例如:
  enum weekday{sun = 7,mon = 1,tue,wed,thu,fri,sat};
  这时sun的值是7,mon的值是1,而tue以后各元素的值,从mon的值开始,每次递增1,即tue的值为2,wed的值为3,…。如果不写mon = 1,则mon的值为8,tue的值为9,依此类推。
下面是我的问题:
enum weekday{sun = 3,mon = 1,tue,wed,thu,fri,sat};
上面的sun的值改成3,moon的值还是1,tue以后的数依次递增1,tue的值是2,wed的值不可能是3,因为与sun的值重复了,请问这时wed,thu,fri,sat的值分别为多少?
▼优质解答
答案和解析
还是3,4,5啊!
枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值,但是你可以在声明的时候进行赋值操作!
但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作。
enum weekday{sun = 3,mon = 1,tue,wed,thu,fri,sat};
上面的sun的值改成3,moon的值还是1,tue以后的数依次递增1,tue的值是2,wed的值还是3,因为sun和wed只是枚举常量,他们都表示3.