- meira
-
下面是我从我的讲义上复制下来的,你看看吧,应该能有些帮助。
第2章 数据类型、运算符与表达式
本章主要介绍C语言的各种数据类型、运算符和表达式。
2.1 C语言的数据类型
C语言的数据类型具体分类如下:
uf071 基本类型:分为整型、实型(又称浮点型)、字符型和枚举型四种。
uf071 构造类型:分为数组类型、结构类型和共用类型三种。
uf071 指针类型
uf071 空类型
2.2 常量和变量
2.2.1 常量
1、常量的概念:在程序运行过程中,其值不能被改变的量称为常量
2、 常量的分类:
uf071 整型常量
uf071 实型常量
uf071 字符常量
uf071 符号常量
3、常量的类型,可通过书写形式来判别。
2.2.2 变量
1、变量的概念:在程序运行过程中,其值可以被改变的量称为变量
2、变量名:每个变量都必须有一个名字——变量名,变量命名遵循标识符命名规则
3、变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值
4、标识符命名规则:
uf071 只能由字母、数字和下划线组成,且以字母或下划线开头
uf071 有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃
uf071 C语言的关键字不能用作变量名
uf046 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,以增加可读性。
5、变量的定义与初始化
在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
数据类型 变量名[, 变量名2……];
例如,float radius, length, area;
(2)变量初始化的一般格式
数据类型 变量名[=初值][, 变量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型数据
2.3.1 整型变量
1、分类
根据占用内存字节数的不同,整型变量又分为4类:
(1)基本整型(类型关键字为int)。
(2)短整型(类型关键字为short [int])。
(3)长整型(类型关键字为long [int])。
(4)无符号整型。无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。
2、占用内存字节数与值域
上述各类型整型变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。
显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~(2n*8-1)。
例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-1-1),即-32768~32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。
第2章 数据类型、运算符与表达式
本章主要介绍C语言的各种数据类型、运算符和表达式。
2.1 C语言的数据类型
C语言的数据类型具体分类如下:
uf071 基本类型:分为整型、实型(又称浮点型)、字符型和枚举型四种。
uf071 构造类型:分为数组类型、结构类型和共用类型三种。
uf071 指针类型
uf071 空类型
2.2 常量和变量
2.2.1 常量
1、常量的概念:在程序运行过程中,其值不能被改变的量称为常量
2、 常量的分类:
uf071 整型常量
uf071 实型常量
uf071 字符常量
uf071 符号常量
3、常量的类型,可通过书写形式来判别。
2.2.2 变量
1、变量的概念:在程序运行过程中,其值可以被改变的量称为变量
2、变量名:每个变量都必须有一个名字——变量名,变量命名遵循标识符命名规则
3、变量值:在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值
4、标识符命名规则:
uf071 只能由字母、数字和下划线组成,且以字母或下划线开头
uf071 有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃
uf071 C语言的关键字不能用作变量名
uf046 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。
习惯上,变量名和函数名中的英文字母用小写,以增加可读性。
5、变量的定义与初始化
在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。
(1)变量定义的一般格式
数据类型 变量名[, 变量名2……];
例如,float radius, length, area;
(2)变量初始化的一般格式
数据类型 变量名[=初值][, 变量名2[=初值2]……];
例如,float radius=2.5, length, area;
2.3 整型数据
2.3.1 整型变量
1、分类
根据占用内存字节数的不同,整型变量又分为4类:
(1)基本整型(类型关键字为int)。
(2)短整型(类型关键字为short [int])。
(3)长整型(类型关键字为long [int])。
(4)无符号整型。无符号型又分为无符号基本整型(unsigned [int])、无符号短整型(unsigned short)和无符号长整型(unsigned long)三种,只能用来存储无符号整数。
2、占用内存字节数与值域
上述各类型整型变量占用的内存字节数,随系统而异。在16位操作系统中,一般用2字节表示一个int型变量,且long型(4字节)≥int型(2字节)≥short型(2字节)。
显然,不同类型的整型变量,其值域不同。占用内存字节数为n的(有符号)整型变量,其值域为:-2n*8-1~(2n*8-1-1);无符号整型变量的值域为:0~(2n*8-1)。
例如,PC机中的一个int型变量,其值域为-22*8-1~(22*8-1-1),即-32768~32767;一个unsigned型变量的值域为:0~(22*8-1),即0~65535。
实型数据
2.4.1 实型变量
C语言的实型变量,分为两种:
(1)单精度型:类型关键字为float,一般占4字节(32位)、提供7位有效数字。
(2)双精度型:类型关键字为double,一般占8个字节、提供15~16位有效数字。
2.4.2 实型常量
1、表示形式
实型常量即实数,在C语言中又称浮点数,其值有两种表达形式:
(1)十进制形式:例如3.14、9.8。
(2)指数形式:<尾数>E(e)<整型指数>。例如3.0E+5等。
2、关于类型
实型常量不分float型和double型。一个实型常量,可以赋给一个实型变量(float型或double型)。
2.5 字符型数据
2.5.1 字符常量
1、字符常量的定义
用一对单引号括起来的单个字符,称为字符常量。
例如,‘A"、‘1"、‘+"等。
2、转义字符
C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的转义字符。
注意:如果反斜杠或单引号本身作为字符常量,必须使用转义字符:‘\"、‘"‘。
[案例2.1] 用转义字符输出可打印字符和不可打印字符。
main()
{
printf(“x4Fx4Bx21 ”); /* 等价于printf(“OK! ”); */
printf(“x15 xAB ”);
}
程序运行结果如下:
OK!
2.5.2 字符变量
字符变量的类型关键字为char,一般占用1字节内存单元。
1.变量值的存储
字符变量用来存储字符常量。将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。
例如,
char ch1, ch2; /*定义两个字符变量:ch1,ch2*/
ch1="a"; ch2="b"; /*给字符变量赋值*/
2.特性
字符数据在内存中存储的是字符的ASCII码—— 一个无符号整数,其形式与整数的存储形式一样,所以C语言允许字符型数据与整型数据之间通用。
(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。
[案例2.2] 字符变量的字符形式输出和整数形式输出。
main()
{
char ch1,ch2;
ch1="a"; ch2="b";
printf(“ch1=%c,ch2=%c ”,ch1,ch2);
printf(“ch1=%d,ch2=%d ”,ch1,ch2);
}
程序运行结果:
ch1=a,ch2=b
ch1=97,ch2=98
(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算。
[案例2.3] 字符数据的算术运算。
main()
{
char ch1,ch2;
ch1=‘a"; ch2=‘B";
printf(“ch1=%c,ch2=%c ”,ch1-32,ch2+32); /*字母的大小写转换*/
/*用字符形式输出一个大于256的数值*/
printf("ch1+200=%d ", ch1+200);
printf("ch1+200=%c ", ch1+200);
printf("ch1+256=%d ", ch1+256);
printf("ch1+256=%c ", ch1+256);
}
程序运行结果:
ch1=A,ch2=b
ch1+200=297
ch1+200=)
ch1+256=353
ch1+256=a
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
- 康康map
-
int和float在内存中存储结构是不一样的
http://blog.csdn.net/chlaws/archive/2007/12/13/1933274.aspx
- Ntou123
-
对啊,你想10/3=3.333,难道3.333*3等于10?
c语言中的枚举型什么意思
是枚举的算法2023-06-12 16:18:5511
c语言中的枚举型什么意思
是枚举的算法2023-06-12 16:19:4311
c语言枚举用法
上面的问题没说清楚吧,x = 0x801005根本就会编译不过的,因为左值是枚举,右值是int。2023-06-12 16:20:263
枚举类型的用法?
C/C++中枚举类型(enum)如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔合中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 在这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; enum box box2;//或者简写成box box2; 再有一种就是在声明的时候同时定义。 enum {pencil,pen}box,box2; //在声明的同时进行定义! 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2}; 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如 enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作! C++ 中的枚举类型继承于 C 语言。就像其他从 C 语言继承过来的很多特性一样,C++ 枚举也有缺点,这其中最显著的莫过于作用域问题——在枚举类型中定义的常量,属于定义枚举的作用域,而不属于这个枚举类型。例如下面的示例:enum FileAccess { Read = 0x1, Write = 0x2,};FileAccess access = ::Read; // 正确FileAccess access = FileAccess::Read; // 错误C++枚举的这个特点对于习惯面向对象和作用域概念的人来说是不可接受的。首先,FileAccess::Read 显然更加符合程序员的直觉,因为上面的枚举定义理应等价于如下的定义(实际上,.NET 中的枚举类型便是如此实现的):class FileAccess { static const int Read = 0x1; static const int Write = 0x2;};其次,这导致我们无法在同一个作用域中定义两个同样名称的枚举值。也就是说,以下的代码是编译错误:enum FileAccess { Read = 0x1, Write = 0x2,};enum FileShare { Read = 0x1, // 重定义 Write = 0x2, // 重定义};如果这一点没有让你恼怒过的话,你可能还没写过多少 C++ 代码 :-)。实际上,在最新的 C++0x 标准草案中有关于枚举作用域问题的提案,但最终的解决方案会是怎样的就无法未卜先知了,毕竟对于象 C++ 这样使用广泛的语言来说,任何特性的增删和修改都必须十分小心谨慎。当然,我们可以使用一些迂回的方法来解决这个问题(C++ 总是能给我们很多惊喜和意外)。例如,我们可以把枚举值放在一个结构里,并使用运算符重载来逼近枚举的特性:struct FileAccess { enum __Enum { Read = 0x1, Write = 0x2 }; __Enum _value; // 枚举值 FileAccess(int value = 0) : _value((__Enum)value) {} FileAccess& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; }};我们现在可以按照希望的方式使用这个枚举类型:FileAccess access = FileAccess::Read;并且,因为我们提供了到 int 类型的转换运算符,因此在需要 int 的地方都可以使用它,例如 switch 语句:switch (access) { case FileAccess::Read: break; case FileAccess::Write: break;}当然我们不愿意每次都手工编写这样的结构。通过使用宏,我们可以很容易做到这一点:#define DECLARE_ENUM(E) struct E { public: E(int value = 0) : _value((__Enum)value) { } E& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; } enum __Enum {#define END_ENUM() }; private: __Enum _value; };我们现在可以按如下的方式定义前面的枚举,并且不比直接写 enum 复杂多少。DECLARE_ENUM(FileAccess) Read = 0x1, Write = 0x2,END_ENUM()DECLARE_ENUM(FileShare) Read = 0x1, Write = 0x2,END_ENUM()2023-06-12 16:20:481
c语言enum是什么意思
枚举类型关键字2023-06-12 16:20:585
枚举类型中各元素的值是整数吗?默认值从什么开始?能够在定义时改变吗
枚举类型在C#或C++,java,VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中是一种构造数据类型 。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。概念在C#或C++,java等一些计算机编程语言中,枚举类型是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中,它是一种构造数据类型。枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.使用格式:枚举类型放在窗体模块、标准模块或共用模块中的声明部分,通过enum语句来定义。.格式:[public|private] enum namemembername[=constantexpression]membername[=constantexpression](maomi)…..End enumpublic:表示该枚举类型在整个工程中都是可见的(缺省的)private:表示枚举类型只在所声明的模块中是可见的。Name: 枚举类型的名称。必须是一个合法的VB标识符,在定义该枚举类型的变量或参数时用该名称来指定类型.Membername:指定该枚举类型的组成元素名称.Constantexpression:枚举类型的组成元素的值.如果没有指定具体值,则所有赋的值或者是0或者比其直接前驱的值大1.元素的值也可以是别的enum类型.VB中将枚举中的元素的值按长整数处理.如果将一个浮点数值赋给一个枚举中的元素,VB会将该值取整为最接近的长整数.2023-06-12 16:21:422
c# 枚举型变量和一般常量的区别
枚举是自己定义好使用的,收自己定义的约束,常量则没有约束,可以自己自由创建.2023-06-12 16:22:013
C语言枚举类型怎么用?
枚举类型的作用要相对小一些,它其实就是个int类型,但对程序的可读性贡献很大。至于“结构体有什么用”,这绝对是个新手问题——因为结构体简直无所不用!简单的说,函数体现算法,而结构体则体现数据结构——算法、数据结构恰是程序设计的核心。无论你想用链表、队列、栈、树等数据结构,还是为了方便而把多个数据成员结合在一起(比如,你要存储考生信息,就可以设计一个结构,里面包含姓名、考号、分数等数据成员),都要用到结构体。建议楼主去看看别人写的程序(比如Linux内核,TCP/IP实现),你会发现里面到处都是结构。2023-06-12 16:22:203
c++ 枚举型变量为什么不能是 数字?
有些编译器会将枚举类型写死 , 可以算是宏定义一样。 但是大多数编译器会将枚举定义转换为数值类型 连续放在一串内存空间 进行对比时候 只是定义内存地址的引用。 不同的编译器生成的代码不同2023-06-12 16:22:391
结构体和ENUM 有什么不同 定义时要注意什么?
结构体是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,比较类似于c++中的类,只不过是用struct来定义的,而类是用class而enum是枚举类型:如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。enum中的值都是同一种数据类型,比如你定义一个enum,表示星期,星期有7天,你可以这样定义enumweek{Sat=1,Sun,Mon,Tue,Wed,Thu,Fri};sun自动的就等于2,以此类推2023-06-12 16:22:462
枚举 enum 这样写对吗
这样写,语法上允许,编译没错,但没法使用,你类似于只定义了 一个 结构,而没有 声明 一个 对象 或 变量。enum {Sun, Mon, Tues, Wed, Thur, Fri, Sat} x; 这就可以了。x 是 这种 类型的 变量。程序里可以 用 x 了。例如:#include<stdio.h>#include <stdlib.h>enum {Sun, Mon, Tues, Wed, Thur, Fri, Sat} x;main(){x = Tues; // 使用printf("%d",x);}2023-06-12 16:23:022
c语言里枚举型enum变量可以进行数据或者运算么? 如:enum{sun, mon} a; int m =a+1;
这样直接不行吧,不是应该用a.sum么?2023-06-12 16:23:123
C语言枚举类型是什么意思
就是你声明的这个枚举变量的值,只能取其中的东西,比如:enum {Monday,Tuesday,Wednesday,Thursday,Friday} weekday;那weekday这个变脸的值只能是{}中的值。(他们分别对应数字0,1,2,3,4,因为枚举型变量也是整型)2023-06-12 16:23:211
枚举变量未赋初值,其默认的值是多少?
枚举的值依次为0、1、2、。。。n2023-06-12 16:23:535
请教如何申明枚举类型为全局变量
变量别放在头文件里。由于头文件可能被多模快引用,就可能出现重复定义。作为全局变量,在一个模快中定义一次,而在其他模快中用“extern”说明之。按LZ情形,应该出现的是“未定义”的错误,因为“extern”不提供实质意义上的变量物理空间的分配。解决的方法是:头文件中放置enum abc {a,b,c};C文件中放置enum abc cc; // 在某一主模块中extern enum abc cc; // 在其他模块中这样,就可以对cc进行操作了,如:cc = c;2023-06-12 16:24:191
java中如何判断一个变量是否属于某个枚举类型中的元素
接口Enumeration的两个函数booleanhasMoreElements()测试此枚举是否包含更多的元素。nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。利用这两个函数,利用while循环就可以读取里面的元素,当然读取出来得元素通过强制转换,就可以和变量进行比较希望对你有所帮助2023-06-12 16:24:281
c语言中的布尔类型、枚举类型是个什么概念?
布尔型(Boolean)是一种数据的类型,这种类型只有两种值,即"真"与"假"。 布尔常量 在Pascal语言中"真"用ture表示,"假"用False表示。所以布尔类型只有TRUE与FALSE两个常量。C语言或C++的一种构造类型,它用于声明一组命名的常数。 (1)枚举的声明:枚举声明用于声明新的枚举类型。 访问修辞符 enum 枚举名:基础类型 { 枚举成员 } ; 基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。 (2)枚举成员 枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 示例: public enum TimeofDay:uint { Morning=-3, Afternoon=-2, Evening=-1 } ; 产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。2023-06-12 16:24:501
java中如何判断一个变量是否属于某个枚举类型中的元素
nextElement()如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。利用这两个函数,利用while循环就可以读取里面的元素,当然读取出来得元素通过强制转换,就可以和变量进行比较希望对你有所帮助2023-06-12 16:25:182
枚举是什么?麻烦告诉我
枚举就是一一列举,将所有的情况都列举出来,那么取值的时候只能是这几种情况的一种,不能是别的。]2023-06-12 16:25:265
c语言中的枚举
值为102。因为如果没有数值的话,它是从0开始,逐个加1,我想这个你应该知道。对于你的这种情况,这么说吧,那些被赋值的,它的值就是被赋得值,那些没有被赋值的,是在被赋值的上面逐个加1。所以:basic=3,assembly=4,ada=100,COBOL=101,Fortran=1022023-06-12 16:25:582
在VB6.0中枚举变量与自定义类型变量有什么区别吗?
用Type类型定义的变量,拥有自己的成员,类似于一个小型的类(只不过没有事件和方法而已)。可以用“变量名.成员名”访问成员枚举类型就相当于一组常量,即一组用Const定义的量,为了便于组织才使用枚举类型。不过枚举类型的变量也可以用“变量名.常量名”访问2023-06-12 16:26:172
数据库的枚举型问题
1、这个类型可以多种:int, char(n) -- 只要约定好就行,存贮枚举值的代码2、枚举类型的允许值,可以由DB保证(比如在tradeInfo.tradeType上加约束);也可以只是由程序来控制 -- DB中加上约束会强壮一些,但会牺牲性能;3、为了软件界面的易读性,通常需要让枚举值可读。每个枚举值对应的文本最好存贮在DB中。这个称为MasterData。可以建一张表存贮4、如果有对应的主数据表,前面2中的约束,就可以改为Foreign Key至于JAVA编程,枚举类型的处理,可以使用常量,也可以更优雅地定义一个类。2023-06-12 16:26:251
c语言枚举类型枚举常量
按照书上的意思定义的时候即赋值2023-06-12 16:26:404
请问C语言中定义数据类型的有哪些词啊,应该在什么情况下用到?
当需要为变量、常量以及函数定义并分配存储空间时,要定义数据类型。C/C++ 数据类型C语言包含5个基本数据类型: void, integer, float, double, 和 char. 类型 描述 void 空类型 int 整型 float 浮点类型 double 双精度浮点类型 char 字符类型 C++ 定义了另外两个基本数据类型: bool 和 wchar_t. 类型 描述 bool 布尔类型, 值为true 或 false wchar_t 宽字符类型 类型修饰符一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰. 当类型修饰符单独使用的时候, 默认的类型是 int. 下表是所有可能出现的数据类型: bool char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int float double long double wchar_t 类型大小和表示范围基本数据类型的大小以及能够表示的数据范围是与编译器和硬件平台有关的. "cfloat" (或者 "float.h") 头文件往往定义了基本数据类型能够表示的数据的最大值和最小值. 你也可以使用 sizeof 来获得类型的大小(字节数) . 然而, 很多平台使用了一些数据类型的标准大小,如. int 和 float 通常占用 32位, char 占用 8位, double 通常占用64位. bools 通常以 8位 来实现.2023-06-12 16:26:502
在C#2010中怎么把一个整数数值转换为二进制,然后给枚举型变量分别赋值?
Convert(十进制数,2);2023-06-12 16:27:193
C语言枚举变量可以赋为负值吗
可以的2023-06-12 16:27:415
c语言中,什么是枚举类型(enum),给个例子?
枚举类型就是整形的常量(定义了就不会变),只是给常量取了个名字而已,增加程序的可读性。例子:main(){ enum weekday { sun,mon,tue,wed,thu,fri,sat } a,b,c; a=sun; b=mon; c=tue; printf("%d,%d,%d",a,b,c); }2023-06-12 16:28:102
枚举类型的用法?
C/C++中枚举类型(enum)如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔合中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它! enum box{pencil,pen};//这里你就定义了一个枚举类型的变量叫box,这个枚举变量内含有两个元素也称枚举元素在这里是pencil和pen,分别表示铅笔和钢笔。 在这里要说一下,如果你想定义两个具有同样特性枚举类型的变量那么你可以用如下的两种方式进行定义! enum box{pencil,pen}; enum box box2;//或者简写成box box2; 再有一种就是在声明的时候同时定义。 enum {pencil,pen}box,box2; //在声明的同时进行定义! 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,他们是不能进行普通的算术赋值的,(pencil=1;)这样的写发是错误的,但是你可以在声明的时候进行赋值操作! enum box{pencil=1,pen=2}; 但是这里要特别注意的一点是,如果你不进行元素赋值操作那么元素将会被系统自动从0开始自动递增的进行赋值操作,说到自动赋值,如果你只定义了第一个那么系统将对下一个元素进行前一个元素的值加1操作,例如 enum box{pencil=3,pen};//这里pen就是4系统将自动进行pen=4的定义赋值操作! C++ 中的枚举类型继承于 C 语言。就像其他从 C 语言继承过来的很多特性一样,C++ 枚举也有缺点,这其中最显著的莫过于作用域问题——在枚举类型中定义的常量,属于定义枚举的作用域,而不属于这个枚举类型。例如下面的示例:enum FileAccess { Read = 0x1, Write = 0x2,};FileAccess access = ::Read; // 正确FileAccess access = FileAccess::Read; // 错误C++枚举的这个特点对于习惯面向对象和作用域概念的人来说是不可接受的。首先,FileAccess::Read 显然更加符合程序员的直觉,因为上面的枚举定义理应等价于如下的定义(实际上,.NET 中的枚举类型便是如此实现的):class FileAccess { static const int Read = 0x1; static const int Write = 0x2;};其次,这导致我们无法在同一个作用域中定义两个同样名称的枚举值。也就是说,以下的代码是编译错误:enum FileAccess { Read = 0x1, Write = 0x2,};enum FileShare { Read = 0x1, // 重定义 Write = 0x2, // 重定义};如果这一点没有让你恼怒过的话,你可能还没写过多少 C++ 代码 :-)。实际上,在最新的 C++0x 标准草案中有关于枚举作用域问题的提案,但最终的解决方案会是怎样的就无法未卜先知了,毕竟对于象 C++ 这样使用广泛的语言来说,任何特性的增删和修改都必须十分小心谨慎。当然,我们可以使用一些迂回的方法来解决这个问题(C++ 总是能给我们很多惊喜和意外)。例如,我们可以把枚举值放在一个结构里,并使用运算符重载来逼近枚举的特性:struct FileAccess { enum __Enum { Read = 0x1, Write = 0x2 }; __Enum _value; // 枚举值 FileAccess(int value = 0) : _value((__Enum)value) {} FileAccess& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; }};我们现在可以按照希望的方式使用这个枚举类型:FileAccess access = FileAccess::Read;并且,因为我们提供了到 int 类型的转换运算符,因此在需要 int 的地方都可以使用它,例如 switch 语句:switch (access) { case FileAccess::Read: break; case FileAccess::Write: break;}当然我们不愿意每次都手工编写这样的结构。通过使用宏,我们可以很容易做到这一点:#define DECLARE_ENUM(E) struct E { public: E(int value = 0) : _value((__Enum)value) { } E& operator=(int value) { this->_value = (__Enum)value; return *this; } operator int() const { return this->_value; } enum __Enum {#define END_ENUM() }; private: __Enum _value; };我们现在可以按如下的方式定义前面的枚举,并且不比直接写 enum 复杂多少。DECLARE_ENUM(FileAccess) Read = 0x1, Write = 0x2,END_ENUM()DECLARE_ENUM(FileShare) Read = 0x1, Write = 0x2,END_ENUM()2023-06-12 16:28:271
枚举类型的变量为什么可以直接赋值为0,而其他的数字?在C#中
当然可以为0了,你首先要搞懂,枚举的定义有一句,如果枚举没有被赋值的情况下或者第一个枚举没有定义值时,默认第一个数值即赋值为0,你说可以不2023-06-12 16:28:391
C中的枚举
我个人理解,枚举变量其实是方便程序员阅读程序,提供的一种用容易理解的单词来代替整数变量的方式。比如说编写一个掷硬币并统计正反面出现次数的程序,用整型变量1表示正面0表示反面,和用yes表示正面用no表示反面,两种表示方法,哪个更容易阅读?实际上,enum loop {no,yes}这句被编译后,no就是等于0,yes等于1,enum loop okloop = yes;这句和int okloop = 1;没有本质区别。2023-06-12 16:28:462
关于JAVA中case与枚举型变量,在图中提示“苹果 cannot be resolved to a variable”
看清楚代码,你们的苹果就不是一个东西,它的是enum 你的是string2023-06-12 16:29:054
c语言,有没有办法遍历枚举类型
就是你声明的这个枚举变量的值,只能取其中的东西,比如:enum {Monday,Tuesday,Wednesday,Thursday,Friday} weekday;那weekday这个变脸的值只能是{}中的值。(他们分别对应数字0,1,2,3,4,因为枚举型变量也是整型)2023-06-12 16:29:152
c语言中的布尔类型、枚举类型是个什么概念?
布尔型(Boolean)是一种数据的类型,这种类型只有两种值,即"真"与"假"。 布尔常量 在Pascal语言中"真"用ture表示,"假"用False表示。所以布尔类型只有TRUE与FALSE两个常量。C语言或C++的一种构造类型,它用于声明一组命名的常数。 (1)枚举的声明:枚举声明用于声明新的枚举类型。 访问修辞符 enum 枚举名:基础类型 { 枚举成员 } ; 基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。 (2)枚举成员 枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 示例: public enum TimeofDay:uint { Morning=-3, Afternoon=-2, Evening=-1 } ; 产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。2023-06-12 16:29:291
计算机C语言中的关键字:enum是什么意思?
枚举:是一个被命名的整型常数的集合2023-06-12 16:29:462
帮忙编程序:定义枚举类型weekday,包括Sunday到saturday七个元素,在程序中定义weekday类型的变量,对其赋
ay ,则下列语句正确的是:A) 表达式 Day.sun == Day.sat;B) Day day;day=3;C)Day day; day = Day.mon+3;D)Day day;day=Day.mon+11;如果是按照上面出的题的话,答案是(A,C,D)2023-06-12 16:30:113
声明一个枚举类型,保存每个月的天数。 定义一个该枚举类型的变量,该变量值是任意一个月份。
enum eMonth = {Jan=1, Feb=2, Mar=3, Apr=4, May=5, Jun=6, Jul=7, Aug=8, Sep=9, Oct=10, Nov=11, Dec=12};long npDays[13] = {0, 31, 28, ...};enum eMonth mon=Mar;long nDays = npDays[(long)mon];2023-06-12 16:30:182
枚举类型数据怎么用
枚举类型在C、VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,而在C语言等计算机编程语言中是一种构造数据类型。它用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。枚举可以根据Integer、Long、Short或Byte中的任意一种数据类型来创建一种新型变量。这种变量能设置为已经定义的一组之中的一个,有效地防止用户提供无效值。该变量可使代码更加清晰,因为它可以描述特定的值。使用要点:赋值运算COLOR等于RED,注意类2023-06-12 16:30:241
java枚举类可以给其中的一个变量赋值吗
yes2023-06-12 16:31:046
C++中枚举是什么类型?
如果一个变量只有几种可能的值,可以定义为枚举类型。枚举类型就是将变量的值一一列举出来,变量的值仅限于列举出来的值的范围内。enum{sun,mon,tue,wed,thu,fri,sat}workday,weekend;其中sun,mon,....,sat称为枚举元素或枚举常量,为用户定义的标识符,所代表的意义由用户决定,在程序中体现出来。1、枚举元素为常量,不可赋值运算。sun=0;mon=1;2、在定义枚举类型的同时,编译程序按顺序给每个枚举元素一个对应的序号,序号从0开始,后续元素依次加1。3、可以在定义时人为指定枚举元素的序号值。enumweekday{sun=9,mon=2,tue,wed,thu,fri,sat};4、只能给枚举变量赋枚举值,若赋序号值必须进行强制类型转换。2023-06-12 16:32:131
数据类型中的枚举是什么?
就是举例子2023-06-12 16:32:272
请问C中的枚举类型里面可以放指针变量吗?如果可以 怎么表示呢?
枚举变量中花括号里的名字是编译者自己定义的,不是变量哦~它们只是一些整形数,是不可改变的。比如enum{a,b,c}。a,b,c对应的值是0,1,2。当然,也可以对它们初始化,比如enum{a=3,b,c,d=7,e}。a,b,c,d,e对应的值为3,4,5,7,8。(注意:值不能重复!)既然不是变量,当然不能放指针变量啦~要注意的是,花括号里可以随便写,但不能用整形数!2023-06-12 16:33:291
c语言中的布尔类型、枚举类型是个什么概念?
布尔类型bool只有两个值,false和true,如果变量值为0就是false,否则为true,布尔变量只有这两个值。如:boolpb=-1.5;//pb=true;boolpt=0;//pt=false;枚举类型是以enum关键字定义的一个类型,定义的枚举变量只能取类型中的常量。enumSTU{ABD,BC,CD};enumSTUT=ABD;//正确,T=0,因为枚举类型的第一个常量的值从0开始。T=0;//错误,枚举类型只能取枚举常量的值。2023-06-12 16:33:392
VB怎么使用枚举数据类型?
Private Enum Weeks Sun = 0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6End EnumPrivate Sub Command1_Click()Dim a As Weeksa = Fri "这里就将a的值变为5了Print a "输出5End Sub2023-06-12 16:33:522
c++中枚举类型的输入方法是??
枚举类型是不能直接输入、输出枚举值的,每个枚举常量都对应一个整数值,在输入时,需要输入枚举值对应的整数值,所以需要使用(int&)进行类型转换。在输出枚举值时,也需要进行类型转换,比如,假设用户输入0表示man,1表示woman,那么需要写成:cin>>(int&)Sex;if (Sex==0) cout<<"man"<<endl;else cout<<"woman"<<endl;2023-06-12 16:34:061
失意的结构失意的结构是什么
失意的结构是:失(独体结构)意(上下结构)。失意的结构是:失(独体结构)意(上下结构)。词性是:动词。注音是:ㄕ一_。拼音是:shīyì。失意的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】失意shīyì。(1)不能实现自已的意愿;不得志。(2)双方意见不合。二、引证解释⒈不遂心;不得志。引《汉书·盖宽饶传》:“宽饶自以行清能高,有益於国,而为凡庸所越,愈失意不快。”唐郑谷《赠下第举公》诗:“见君失意我惆_,记得当年落第情。”宋苏轼《送杭州杜戚陈三掾罢官归乡》诗:“君言失意能几时,月啖虾蟆行_皎。”郭沫若《伟大的爱国诗人--屈原》:“后来在他失意遭受了流窜的时候,他屡次想跑到别国去。”⒉意见不合。引南朝宋鲍照《代结客少年场行》:“失意杯酒间,白刃起相_。”唐赵元一《奉天录》卷一:“_马郭_,先与公主失意,上收公主在内,隔_经年。”宋叶适《郭处士墓志铭》:“东阳旧俗,以气力为雄,带刀束棍,裹行道上,失意_相仇杀。”⒊不合别人心意。引《汉书·韩王信传》:“为人宽和自守,以温颜逊辞承上接下,无所失意,保身固宠,不能有所建明。”唐杜甫《两当县吴十侍御江上宅》诗:“上官权许与,失意见迁斥。”《金史·施宜生传》:“失意於刘麟,左迁彰信军节度判官。”⒋谓心意迷乱。引汉刘向《列女传·陈女夏姬》:“三为王后,七为夫人,公侯争之,莫不迷惑失意。”三、国语词典不如意、不得志。词语翻译英语disappointed,frustrated德语Frustration(S)_法语dé_u,frustré四、网络解释失意(词语解释)失意,指不如意、不得志;意见冲突,不和睦。关于失意的近义词失落关于失意的反义词正常得势称心得意关于失意的诗词《惠诗韵·自古诗人失意多》《病起·失意忧多病》《失意书怀呈知己》关于失意的诗句失意杯酒间失意每多如意少得意失意花上月关于失意的单词frustrated关于失意的成语大意失荆州横失冒失鬼顿足失色关于失意的词语成败得失不失圭撮时不可失意中人顿足失色关于失意的造句1、感谢母亲,当我失意,双眼迷离的时候是那拥有万丈柔情的妈妈开导了我,为我在人生路上找到一个指向标,指引我前进。2、人生没有失意,所谓失意就是失去了没有意义的,所以请再找有意义的男人。3、生活中的失意之事不能看作命中注定的。4、在我们身边,经常会听到一些人抱怨的声音,他们往往把自己的失意或失败归咎于周边的环境和他人,甚至总想着要去改变别人来适应自己。其实,上面这个故事告诉我们,征服世界,并不一定伟大。一个人能征服自己,才是世界上最伟大的人。人生最大的。5、而且经常要有危机感,那么一旦遇到倒霉、失意、落魄的情况,就不会张皇失措了。点此查看更多关于失意的详细信息2023-06-12 16:27:331
童话故事作文400字四年级
刺猬智斗老虎有一只,刺猬杀死了一只老鼠,山猫想吃掉老鼠,刺猬不同意。 于是山猫便以“蓄意谋杀罪”告到了国王老虎大人那里。 老虎下令将刺猬关进了动物监狱。他与大臣豹、狼商量了一下,想暗地里把刺猬杀死吃掉。可是刺猬浑身是刺,无法下手,只好既不审他,也不给他东西吃。 刺猬饿极了,想出了一个好办法让狼带他去见老虎。老虎问:“你来见我有什么事?”刺猬不慌不忙的说:“大王,我要献一颗珍珠。这是老鼠那里得到的,把它放在桌上,马上会出现吃不完的肉。”老虎一听馋得直流口水,但他还是半信半疑地问:“那你为什么不留着自己用呢?” 刺猬说:“大王,这颗珍珠只能被没杀过好人的人放在桌上,才会变出肉,而我杀过了老鼠,所以变不出来肉来。”老虎想去接珍珠,突然想起自己杀过无数小动物,忙将手缩了回去了。 刺猬说:“既然大王不敢接,就请豹来接吧。”“我不行,我手太重,会把珍珠弄碎的。”豹直往后退。他也是经常杀害小动物。 “那么狼来接。”刺猬转向狼。狼不肯接。他也亲手杀过许多的小动物的。 刺猬大笑起来说:“你们所有人都杀过小动物,但你们谁也没有被关进监狱。而我杀死了一只危害森林王国的老鼠,就把我关进监狱,这公平吗?”国王老虎、大臣豹和狼被问的一句话也答不上来了,只好把刺猬放了。2023-06-12 16:27:422
失意是什么意思
中国古往今来把事业分四大等:仕农工商,仕就是入官吃奉禄,就是现在的从政。时下反腐这么严,不顺,不如意也正常2023-06-12 16:27:4310
失意的诗句失意的诗句是什么
失意的诗句有:得意失意由一言,得意失意花上月。失意的诗句有:胡子长发都是狂涛与杂芜的落寞与失意再没有人照料往事退到黧黑的时间里集结为悲惨的幽灵岛心境平和的海面夕照恍恍片刻的柔和片刻的憔悴片刻波光弧影地微笑曾经被迫作为一朵乌云押过大街任箭簇支支穿心穿透青春热血沸腾的骄傲爱情以洁白的手从众人践踏之下拣起失落的鞋为你穿在荆棘上行走的脚天使将翅膀覆盖你的天空这一瞬间你目光的刀刃已超越命运的泥沼但,得意失意由一言。拼音是:shīyì。词性是:动词。结构是:失(独体结构)意(上下结构)。注音是:ㄕ一_。失意的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】失意shīyì。(1)不能实现自已的意愿;不得志。(2)双方意见不合。二、引证解释⒈不遂心;不得志。引《汉书·盖宽饶传》:“宽饶自以行清能高,有益於国,而为凡庸所越,愈失意不快。”唐郑谷《赠下第举公》诗:“见君失意我惆_,记得当年落第情。”宋苏轼《送杭州杜戚陈三掾罢官归乡》诗:“君言失意能几时,月啖虾蟆行_皎。”郭沫若《伟大的爱国诗人--屈原》:“后来在他失意遭受了流窜的时候,他屡次想跑到别国去。”⒉意见不合。引南朝宋鲍照《代结客少年场行》:“失意杯酒间,白刃起相_。”唐赵元一《奉天录》卷一:“_马郭_,先与公主失意,上收公主在内,隔_经年。”宋叶适《郭处士墓志铭》:“东阳旧俗,以气力为雄,带刀束棍,裹行道上,失意_相仇杀。”⒊不合别人心意。引《汉书·韩王信传》:“为人宽和自守,以温颜逊辞承上接下,无所失意,保身固宠,不能有所建明。”唐杜甫《两当县吴十侍御江上宅》诗:“上官权许与,失意见迁斥。”《金史·施宜生传》:“失意於刘麟,左迁彰信军节度判官。”⒋谓心意迷乱。引汉刘向《列女传·陈女夏姬》:“三为王后,七为夫人,公侯争之,莫不迷惑失意。”三、国语词典不如意、不得志。词语翻译英语disappointed,frustrated德语Frustration(S)_法语dé_u,frustré四、网络解释失意(词语解释)失意,指不如意、不得志;意见冲突,不和睦。关于失意的近义词失落关于失意的反义词得势正常称心得意关于失意的诗词《失意书怀呈知己》《苏堤·自向桃源失意回》《送上官直·失意多怨尤》关于失意的单词frustrated关于失意的成语顿足失色冒失鬼横失大意失荆州关于失意的词语顿足失色时不可失成败得失不失圭撮意中人关于失意的造句1、人生没有失意,所谓失意就是失去了没有意义的,所以请再找有意义的男人。2、无论失意有多长,都长不过生命。3、得意淡然,失意坦然。4、而且经常要有危机感,那么一旦遇到倒霉、失意、落魄的情况,就不会张皇失措了。5、意思是在纷扰繁杂世界里面对失意落魄也从容对待,尘世间的事情犹如一场梦,每个人都是人生中的过客,知晓明月追逐清风那般痴缠,又何必对于某见事情过于执着。点此查看更多关于失意的详细信息2023-06-12 16:27:261
失意是什么意思?
无意识2023-06-12 16:27:054
失意,如释重负,任重道远,海阔天空造句
在人生成长的路上,有得意之时的凌云壮志,有失意之时的不堪回首。如何达观的看待人生,既要相信人与人之间的契约精神,也要时刻的去监督自己内心的选择,2023-06-12 16:26:561