当前位置:文档之家› 简述C语言中, 枚举的使用方法

简述C语言中, 枚举的使用方法

简述C语言中, 枚举的使用方法
简述C语言中, 枚举的使用方法

简述C语言中, 枚举的使用方法

在前面的文章里,我们已经介绍了C语言中的结构体、共用体(也叫:联合体)数据类型。这一篇文章中,我们将介绍一下,C语言中的枚举数据类型。首先,我们来写一个小例子:在C语言中,没有true和false这两个关键字,我们可以借助定义一个枚举类型,来模拟实现这两个关键字。如下所示程序:

C语言示例代码1在上述C语言程序中,第3行到第7行,就是定义了一个枚举数据类型。枚举类型有一个特点,就是大括号里面,排在第一位的元素,如果不给它赋值,那么它的值就默认为0上述这个程序中,元素false的值,就默认为0,true的值就默认为1,上述这个程序,执行结果如下所示:

示例代码1的执行结果如果我们这样将程序改变一下:

C语言示例代码2上述程序中,在第5行,在枚举类型的大括号里面,我们将元素true排在第一位,将元素false排在第二位。那么此时,true的值,就变为0了,而false的值,就变为1了。上述程序执行结果,如下所示:

示例代码2的执行结果我们看到,上述程序,最终执行了第12行,而第11行,并没有执行。因为此时,true的值为0枚举的作用,是限定住枚举变量的值的范围,只能是某一个

值或者某几个值。这样做的好处,是使得代码更规范一些,更加便于维护。我们来看一下,下面这个程序:

C语言示例代码3上述程序中,第16行,我们定义了一个枚举变量wk,这个变量的值,就被规范为:从(sunday、monday、tuesday、wednesday、thursday、friday、sataurday)这几个值里面选。这样,就增加了程序的可维护性。

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的定义赋值操作! 前面说了那么多,下面给出一个完整的例子大家可以通过以下的代码的学习进行更完整的学习! #include using namespace std;

C语言共用体、枚举、typedef

一、typedef声明新的类型名 结构体类型名较长、有些类型名不直观或不习惯、不喜欢?可不可以重命名呢? 用typedef声明新的类型名来代替已有的类型名 例如: 1)typedef float single; 2) typedef struct STU SD; 则“float x,y;”与“single x,y;”等价;

“p=(struct STU*)malloc(sizeof(struct STU));”与 “p=( SD *)malloc(sizeof(SD));”等价。 二、共用体 1、共用体类型的定义 当若干变量每次只使用其中之一时,可以采用“共用体”数据结构。共用体数据中各成员存放到同一段内存单元,设置这种数据类型的主要目的就是节省内存。 共用体类型需要用户自己定义,然后才能用之来定义相应类

型的变量、数组、指针等。 定义共用体类型的格式为: union 共用体类型名 { 数据类型1 成员名1; 数据类型2 成员名2; …… 数据类型n 成员名n; }; 【注意】在右花括号}的后面有一个语句结束符“分号”。

2、共用体变量、数组的定义 有三种方法可以定义共用体变量、数组:先定义共用体类型,然后定义变量、数组;同时定义共用体类型和变量、数组;定义无名称的共用体类型的同时定义变量、数组。 例如:①union GYT {char a[2]; int b; }; GYT x ,y[5]; ②union GYT

{ char a[2]; int b; }x ,y[5]; ③union { char a[2]; int b; }x ,y[5]; 上述三种方法完全等价。 【注意】(1)共用体变量所占内存单元数目等于占用单元数目最多的那个成员的单元数目。 (2)共用体变量各成员占据相同的起始地址,每一瞬时

c语言中枚举类变量使用

#include void main() { printf("c语言中枚举类型变量的使用:\n"); printf("\n"); printf("实际问题说明:\n"); printf("口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从袋子中先后取出三个球,求得到3种不同颜色的球的可能取法:\n"); printf("\n"); enum color{red,yellow,blue,white,black }; enum color pri; int i,j,k,n,loop; n=0; for(i=red;i<=black;i++) { for(j=red;j<=black;j++) { if(i!=j) { for(k=red;k<=black;k++) { if((k!=i)&&(k!=j)) { n=n+1; printf("第%d个筛选组合\n",n); printf("%-4d",n); for(loop=1;loop<=3;loop++) {

switch(loop) { case 1: pri=(enum color)i;//此处需要进行强制类型转换,否则报错 break; case 2: pri=(enum color)j;//此处需要进行强制类型转换,否则报错 break; case 3: pri=(enum color)k;//此处需要进行强制类型转换,否则报错 break; default: break; } switch(pri) { case red: printf("%-10s","red"); break; case yellow: printf("%-10s","yellow"); break; case blue: printf("%-10s","blue"); break; case white: printf("%-10s","white");

C语言自定义数据类型

自定义数据类型 结构体 结构体是程序员在程序中自定义的一种数据类型,在说明和使用之前必须先定义它,也就是构造它。定义一个结构体的语法格式如下: Struct 结构体类型名 { 成员1的数据类型名成员1名称; 成员2的数据类型名成员2名称; . . 成员n的数据类型名成员n名称; }结构体变量表={成员初始化}; 注意成员可以由若干个不同的数据类型组成,每个成员也可以是结构体,即可以嵌套定义。 例如: Struct student { Long num; Char name; Char sex; Float score; }; 已经定义的某种结构体类型可以视为一种标准的数据类型,它的使用方法与标准数据类型使用方法相同,可以用来定义变量、数组、指针。 结构体变量说明 结构体变量的说明在程序的变量说明部分给出,一般在结构定义之后,它的语法格式如下: Struct 结构类型名结构变量名表; 例如: Struct student stu; 指出了结构变量stu是student类型的变量,它由四个成员组成,每个成员的数据类型和名字都与student结构定义中给出的相同。系统完全按照结构定义时制定的内存模式为结构变量分配内存空间。 可以在定义结构体类型的同时给出结构体变量。 Struct student { Long num; Cha name[20]; Cha sex; Float score; }stu1,stu2; 这种形式与前面给出的结构定义和结构说明分开处理效果相同。

结构体成员访问 结构体成员是通过结构体变量名和成员名进行访问的,不能把他作为一个整体进行访问。其访问格式如下: 结构体变量名.成员名 其中运算符.是成员访问运算符,其运算级别是最高的,和圆括号运算符()、下标运算符[]是同一级别的。如果结构体成员是指针变量,则访问格式为: *https://www.doczj.com/doc/442398180.html, 如果某个结构体变量的成员数据类型又是一个结构体,则访问方式为: 外层结构体变量名.外层成员名.内层成员名 可以在定义结构体变量的同时对结构体变量初始化。 {结构体成员}结构体变量={初始数据}; struct student { long num; char name[20]; char sex; float score; } stu1={200401L,"ZhangHong",'f',92.5f}; 对于嵌套的结构体类型数据,访问格式为: 结构体变量名1.结构体变量名2.成员名 结构体变量初始化的格式如下: struct 结构体名 {结构体成员}结构体变量={初始数据}; 初始数据类型必须与结构成员的数据类型相匹配,并且先后顺序一一对应赋值。 要对结构体变量的成员地址进行访问,其语法格式为: &结构体变量.成员名 当一个指针变量用来指向一个结构变量时,称为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。 结构体指针变量: Struct 结构名*结构体指针变量名 Struct student *pstu; 必须先赋值后使用,把结构体变量的首地址赋给指针变量,不能把结构名或结构体变量名赋给指针变量。 pstu=&stu1; 结构体名和结构体变量是两个不同的概念,结构体名只能表示一个结构形式,编译系统并不对它分配内存空间,只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间。这是因为结构体变量被定义后相当于标准数据类型被使用。 利用结构体指针变量访问成员如下: (*结构体指针变量).成员名 或者: 结构体指针变量->成员名 后一种形式较为方便,容易区分。

C语言基本数据类型

第2章基本数据类型 本章介绍常量与变量的概念,以及C语言基本数据类型中的整型、字符型、实型数据的基本知识,各种不同数据类型之间的转换及混合运算。 2.1 数据概述 一个完整的计算机程序,至少应包含两方面的内容,一方面对数据进行描述,另一方面对操作进行描述。数据是程序加工的对象,数据描述是通过数据类型来完成的,操作描述则通过语句来完成。 C语言不仅提供了多种数据类型,还提供了构造更加复杂的用户自定义数据结构的机制。C语言提供的主要数据类型有: 1.基本类型:包括整型、字符型、实型(浮点型)和枚举类型 2.构造类型:包括数组、结构体和共用体类型 3.指针类型 4.空类型 其中整型、字符型、实型(浮点型)和空类型由系统预先定义,又称标准类型。 基本类型的数据又可分为常量和变量,它们可与数据类型结合起来分类,即为整型常量、整型变量、实型(浮点型)常量、实型(浮点型)变量、字符常量、字符变量、枚举常量、枚举变量。在本章中主要介绍基本数据类型(除枚举类型外),其它数据类型在后续章节中再详细介绍。 2.1.1 常量与符号常量 在程序执行过程中,其值不发生改变的量称为常量。常量区分为不同的类型,如68、0、-12为整型常量,3.14,9.8为实型常量,‘a’,‘b’,‘c’则为字符常量。常量即为常数,一般从其字面即可判别。有时为了使程序更加清晰和便于修改,用一个标识符来代表常量,即给某个常量取个有意义的名字,这种常量称为符号常量。如: 【例2-1】 #define PI 3.14 main( ) { float aera; aera=10*10*PI; printf(“aera=%f\n”,aera); }

C语言数据类型及转换

C语言的数据类型 C语言提供的数据结构,是以数据类型形式出现的。具体分类如下: 1.基本类型 分为整型、实型(又称浮点型)、字符型和枚举型四种。 2.构造类型 分为数组类型、结构类型和共用类型三种。 3.指针类型。在第9章中介绍。 4.空类型 C语言中的数据,有常量和变量之分,它们分别属于上述这些类型。 本章将介绍基本类型中的整型、实型和字符型三种数据。 2.3 常量和变量 2.3.1 常量 1.常量的概念 在程序运行过程中,其值不能被改变的量称为常量。 2.常量的分类 (1)整型常量 (2)实型常量 (3)字符常量。 (4)符号常量。 常量的类型,可通过书写形式来判别。 2.3.2 变量 1.变量的概念 在程序运行过程中,其值可以被改变的量称为变量。 2.变量的两个要素 (1)变量名。每个变量都必须有一个名字──变量名,变量命名遵循标识符命名规则。(2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。 3.标识符命名规则 (1)有效字符:只能由字母、数字和下划线组成,且以字母或下划线开头。 (2)有效长度:随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。 例如,由于student_name和student_number的前8个字符相同,有的系统认为这两个变量,是一回事而不加区别。 在TC V2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。 (3)C语言的关键字不能用作变量名。 注意:C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。 习惯上,变量名和函数名中的英文字母用小写,以增加可读性。 思考题:在C语言中,变量名total与变量名TOTAL、ToTaL、tOtAl等是同一个变量吗?标识符命名的良好习惯──见名知意: 所谓“见名知意”是指,通过变量名就知道变量值的含义。通常应选择能表示数据含义的英文单词(或缩写)作变量名,或汉语拼音字头作变量名。 例如,name/xm(姓名)、sex/xb(性别)、age/nl(年龄)、salary/gz(工资)。 4.变量的定义与初始化 在C语言中,要求对所有用到的变量,必须先定义、后使用;且称在定义变量的同时进行赋初值的操作为变量初始化。

C语言枚举类型

C语言枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。 11.1.1枚举类型的定义和枚举变量的说明 1、枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表}; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。 2、枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c; 11.1.2枚举类型变量的赋值和使用 枚举类型在使用中有以下规定: 1、枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。 2、枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 【例11.10】 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); } 说明:只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sum;

C语言中enum类型的用法

11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。 11.10.1 枚举类型的定义和枚举变量的说明 1. 枚举的定义枚举类型定义的一般形式为: enum 枚举名{ 枚举值表}; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。 例如: 该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。 2. 枚举变量的说明 如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。 设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式: enum weekday{ sun,mou,tue,wed,thu,fri,sat }; enum weekday a,b,c; 或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c; 或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c; 11.10.2 枚举类型变量的赋值和使用 枚举类型在使用中有以下规定: 1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。 2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 【例11.10】 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); }

c语言基础教程 第九章 联合和枚举

C语言基础教程9.1.1 联合变量的定义和赋值 联合变量定义的形式与结构很相似,除关键字不同,其余几乎相同。下面是一个联合模式的定义格式: union(联合名) { (联合成员说明); }; 其中,union是联合的关键字。(联合名)的命名方法同标识符,<联合成员说明》是将组成该联合的所有成员进行类型说明。C:语言中,几乎所有类型都作为联合的成员,包含结构变量在内。 联合变量的定义如下所示: union<联合名)(联合变量名表); 定义一个联合变量之前要先定义一种联合模式,任何一种联合变量都是属于某种联合模 式的联合变量,这一点与结构变量很相似。<联合变量名表)中,可以是一个联合变量名,也可是多个联合变量名,多个变量用逗号分隔。这里的变量可以是一般联合变量,也可以是指向联合变量的指针。例如: union date { Char c_data; int idata; float f._data; double d_data; }; union data dl,d2.*pd. 其中,anion是关键字,data是联合名,该联合有4个成员,分别作了说明dl和d2是两个联合变量,pd是一个指向联合变量的指针。联合变量dl和d2都是具有联合名data 的联合变量。而联合变量指针pd也是指向具有data联合名的联合变量的指针。 与结构相类似,上述定义联合变量也可以写成如下形式: union data { char c_data; int i _data;

float f_data; double d_data; }d1,d2,*pd; 这里,也同样定义了联合变量dl和d2以及指向联合变量的指针pd。 联合变量的成员表示也与结构相似。联合变量的成员用"·"表示,指向联合变量的指针用"一>"表示。 联合变量的赋值主要是给联合变量的各成员赋值。例如,在上例中,对联合变量dl的几个成员赋值分别如下: dl.c_data='a'; dl.i_data=15; dl.f_data=10.5; dl.b_data=87.63; 对指向联合变量的指针pd赋值与给联合变量赋值相同,只是其成员表示不同。例如,给pd的最后一个成员赋值如下: Pd一>d_data =97.0 由于联合变量中的若干个成员共用内存单元,即一个联合变量的所有成员具有一个相同 的内存地址值,因此,在联合变量中起作用的成员是最近一次被赋值的成员,因为一个联合变量的若干个成员共用一个内存地址,存入了新的成员值时,原来的成员值便失去意义。 如果给联合变量赋初值,只能有一个值,并且指定斌给第一个成员,而不能用多个值赋给多个成员,其原因是由于联合变量所有成员共占一个内存地址。 C语言基础教程9.1.2联合与结构的区别 前面对联合变量的定义和联合变量成员的表示以及对联合变量的赋值作了描述,可以看出联合与结构有许多相似之处,但是也指出了两者的最大区别在于联合是共址的,结构是异址的。即联合的所有成员共同使用一个内存地址,而结构的每个成员都有自己的内存地址。 由于联合的共址特性使得它与结构产生了很大差别。例如,在斌初值时,联合变量只能给第一个成员赋初值;不能对联合变量名赋值;不能用联合变量作函数参数,也不能用联合变量作函数的返回值,只能用指向联合变量的指针作函数参数。 下面举出两个例子说明联合变量的使用和特点。 [例9.1] 分析下列程序的输出结果,进而说明联合变量的成员是共址的。

c和verilog的enum枚举类型

Verilog中的枚举类型与C语言中一样。 C语言中枚举类型 1、应用场合 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。以下代码定义了这种新的数据类型: enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开; (2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项; (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1,如果把第一个改为1,后续成员依次为2,3,4…; (4)可以在定义枚举类型时初始化各个成员的值,从而自定义某个范围内的整数; (5) 枚举型是预处理指令#define的替代; (6) 类型定义以分号;结束。 2、引用方法 (1)定义后引用 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; enum DAY yesterday; enum DAY today; enum DAY tomorrow; //变量tomorrow的类型为枚举型enum DAY enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型 其中任何一个枚举数据类型enum DAY都是在所以定义的enum DAY成员范围变化。 (2)定义时引用 e num week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; //变量days的类型为枚举型enum week (3)用typedef把枚举类型定义为别名 typedefenum workday

C语言枚举类型应用

enum与typedef enum的用法 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。 1. 定义一种新的数据类型 - 枚举型 以下代码定义了这种新的数据类型 - 枚举型 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。 (2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。 (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。 (4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5) 枚举型是预处理指令#define的替代。 (6) 类型定义以分号;结束。 2. 使用枚举类型对变量进行声明 新的数据类型定义完成后,它就可以使用了。我们已经见过最基本的数据类型,如:整型int, 单精度浮点型float, 双精度浮点型double, 字符型char, 短整型short等等。用这些基本数据类型声明变量通常是这样: char a; //变量a的类型均为字符型char char letter; int x, y, z; //变量x,y和z的类型均为整型int int number; double m, n; double result; //变量result的类型为双精度浮点型double

C语言基本数据类型

C语言基本数据类型 数据类型基本类型 整型 整型常量 整形变量 字符型 实型(浮点型) 单精度型 双精度型 枚举类型 构造类型 指针类型 空类型 常量 在程序中,常量是可以不经过说明直接引用的,而变量则必须先说明后使用。 常量定义是指符号常量的定义,其用一个标识符来代表一个常量,通过宏定义预处理指令来实现。一旦定义,在程序中凡是出现敞亮的地方均可用符号常量名来代替。 其定义格式为:#define 标识符常量例如:#define L 5 变量 在使用变量前需要先对变量进行声明,变量说明的一般形式为: 类型说明符变量名标识符,变量名标识符,...; 建议读者将变量声明放在所有代码之前,即在main()函数的“{”付好后就开始声明变量。 整数型数据类型 整形数据类型 整型常量 八进制:必须以0开头 十六进制:前缀为0X或0x 十进制:前无前缀 整形变量 基本型:类型说明符为int,2字节,范围?32768~32767,声明:int a; 短整型:类型说明符short int或short,2字节,声明:short a; 长整型:类型说明符为long int或long,4字节,?232~232,声明:long a 无符号型:类型说明符unsigned,不能表示 如果使用的数超过了上述范围,就必须使用长整型来表示。长整型数是用后缀“L”或“l”来表示的。 2-1整型量所分配的内存字节数及取值范围 格间隔。 实型(浮点型)数据类型

浮点型数据类型 浮点型常量 浮点型变量 单精度型 双精度型 表2-2 实数型量所分配的内存字节数及取值范围 单精度型数据占32位的内存空间,能够提供7位有效数字,而双精度型数据占64位,可提供16位有效数字。 与整形数据类型使用%d作为printf库函数的格式输出符类似的,浮点型数据类型采用%f作为输出格式。字符型数据类型 字符型数据类型 字符常量字符串常量转义字符字符变量 [字符常量]是指用一对单引号括起来的字符。如…a?,…9?,…!?。字符常量中的单引号只起定界作用并不表示字符本身。单引号中的字符不能是单引号(‘)和反斜杠(\)。在程序中为一个字符加上一对单引号后,其即变为字符常量,字符常量可以与整型数据进行算术运算。例如大写字母‘A’比小写字母‘a’更小。这是因为A的ASCII码为65,而a的ASCII码为97。 转义字符\n表示换行。 [字符串常量]C Program包含9个字符(空格也是字符),根据C语言中一个字符在内存中只占一个字 [转义字符]是C语言中表示字符的一种特殊形式,是将反斜杠“\”后面的字符转换成另外的意义。如“\n”中,“n”不代表字母n而作为“换行符”。也就是说,我们想要控制换行或者空格等,但又想屏幕中不出现显示的字符(比如字母“n”、“t”),就用特殊的形式表示,这就是转义字符。 组成:反斜杠\ + 一个字符或一个八进制或十六进制数 [字符变量]与整型变量用来存放整型数据类型一样,字符变量用来存放字符常量,注意只能存放一个字符。形式:char字符变量标识符1,字符变量标识符2,…; 程序:#include main() { char ch1,ch2; /*定义字符变量*/ ch1=97; /*赋初值*/ ch2=98; printf(“%c,%c\n”,ch1,ch2);/*输出字符型变量ch1,ch2*/ ch1=ch1-32; /*字符型变量ch1,ch2之间的运算*/ ch2=ch2-32; printf(“%c,%c\n”,ch1,ch2);/*输出字符型变量ch1,ch2*/ } 字符型数据类型的格式输出符为%c,其中只代表一个字符。

c语言:结构体、枚举、宏和动态内存分配

结构体、枚举、动态内存分配和宏 ========================== 【结构体】 一、认识结构体 结构体是一种复合的数据结构,是将基础变量类型和复合的变量类型封装成的新的数据结构体。结构体是一种自定义的类型。 struct sct{ int a; char b; }; strct sct aa; int a; //如果说,数组是相同类型变量的集合,那么结构体可以是相同元素的集合,也可以是不同元素的集合。 //这里声明了一个结构体,实际上是创建了一个新的变量类型,就像int,本身没有空间。只有用变量类型声明的变量才有空间。如int a。 // 比如int =9,错误。 int main(void) { struct sct s1,s2; //声明了两个结构体变量。 //s1有空间,所有s1是一个由int a;char b组成的空间。声明s1,如同声明了一个a和一个b。a和b称为s1的两个成员。 s1.a=9; s1.b=’T’; } 问:为什么声明结构体,声明结构体有什么用? 比如说存储班级学生的姓名和学号, struct student{ char name[]; char ID[20]; }; struct student a[60]; 【注】函数是对处理数据的功能的封装。 结构体是对存储数据的数据结构的封装。 二、结构体的赋值和初始化 struct point{ int x; int y; }; int main(void) { //初始化 //按照每个成员的初始化方式分别初始化。

struct point pp={3,4}; struct point pp2; struct point pp3; //赋值 //结构体可以整体赋值。但是没有结构体常量 pp2=pp; //结构体也可以分别对成员赋值 pp3.x=5; pp3.y=pp2.x; printf(“%d %d\n”,pp3.x, pp3.y); return 0; } 【注】结构体里也可以包含其它结构体 struct rect{ int num; struct point p; }; struct rect re; re.p.x=9; re.num=2; 在IOS当中结构体的典型应用(储存坐标) 三、 typedef unsigned long size_t 结构体取别名 typedef existing new struct point{ int x; int y; }; typedef struct point mypoint; //给结构体取别名 struct point aa; mypoint aa; 应用 mypoint pp={3,4}; 或者是 typedef struct point{ int x; int y; }mypoint;

C语言枚举类型详解技巧解答

Abstract:Based on the comprehensive analysis on the plastic part’s structure service requirement, mounding quality and mould menu factoring cost. A corresponding injection mould of internal side core pulling was designed. By adopting the multi-direction and multi-combination core-pulling. A corresponding injection mould of internal side core pulling was designed, the working process of the mould was introduced C语言详解- 枚举类型 注:以下全部代码的执行环境为VC++ 6.0 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。 1. 定义一种新的数据类型- 枚举型 以下代码定义了这种新的数据类型- 枚举型 enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; (1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。 (2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。 (3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。 (4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。 (5) 枚举型是预处理指令#define的替代。 (6) 类型定义以分号;结束。 2. 使用枚举类型对变量进行声明

相关主题
文本预览
相关文档 最新文档