枚举
枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明:
enum 枚举类型名字 {名字0,名字1,。。。,名字n};
枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。
如:enum color{red,yellow,green};
就创建了3个常量,red的值是0,yellow的值是1,green的值是2。
当需要一些可以排列起来的常量值时,定义枚举的意思就是给这些常量值名称。
枚举量可以作为值;
枚举类型可以加上enum作为类型;但实际是以整数来计算和输入输出的。
#include
enum color{ red, yellow, green,Numcolors};//此处Numcolors为小套路,数值刚好等于定义的枚举量,可以定义数组,遍历数组等使用。
void f(enum color c);//此处enum必须带上
int main(void)
{
enum color t = red;//枚举类型可以加上enum作为类型
scanf("%d",&t);
f(t);
return ;
}
void f(enum color c)
{
printf("%d\n%,c);
}
枚举量
声明枚举量的时候可以指定值,如
enum COLOR {RED = , YELLOW,GREEN = };//RED = 1是从1开始的,不是从0
//YELLOW =2
//GREEN = 5
枚举只是int,即使给枚举类型的变量赋不存在的值,也没有任何warning和error。
虽然枚举类型可以当做类型用,但是很少用。
如果有意义上排比的名字,用枚举比用const int方便。
枚举比宏好,因为枚举有int类型。
结构
#include
int main(int grc,char *grv[])
{
struct date {
int month;
int day;
int year;
};
struct date today;
today.month = ;
today.day = ;
today.year = ;
printf("Today's date is %i-%i-%i\n",today.month,today.day,today.year);
return ;
}
和本地变量一样:在函数内部声明的结构变量只能在函数内部使用;在函数外声明的结构变量可以在所有函数使用。
所以通常在函数外部声明结构变量,这样可以在多个函数使用。
结构变量的初始化
struct date day = {,,};//第一种初始化方法
struct Thismonth = {.month = ,.year = };//第二种初始化方法。未指定为0
结构变量的成员
结构和数组有点像
数组用【】运算符和下标访问其成员
结构用 .运算符和名字访问其成员
today.day
要访问整个结构,直接用结构变量的名字
对于整个结构,可以赋值,取地址,也可以传递给函数参数
p1 = (struct point){5,10}; ----> p1.x = 5; p2.y = 10;
p1 = p2; ---->相当于p1.x = p2.x; p1.y = p2.y
c语言学习笔记之结构体存储
今天讲讲结构体存储问题 首先,结构体简单说是对不同类型的封装,一开始我们可能会想结构体在内存中的存储的大小是直接元素的和 例如 我们可能会觉得是 结构体大小=int(4个字节)+ short(2个字节 ...
C语言学习笔记10-结构体、枚举、联合体
C语言学习笔记10-结构体.枚举.联合体 待传
contiki学习笔记---process结构体
process,字面意义,进程,看看它的结构 struct process { struct process *next; #if PROCESS_CONF_NO_PROCESS_NAMES #def ...
C#学习笔记之结构体
1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有 ...
《PHP7底层设计与源码实现》学习笔记2——结构体对齐
书里给了一段代码,假如有个结构体如下: struct test { char a; int b; long c; void* d; int e; cha ...
c语言学习笔记 - 枚举类型
今天学习了c语言的枚举类型的使用,可能是PHP里没使用过,开始看的时候还是觉得有点怪,后来做了下例子才理解,这里做个笔记记录一下. #include enum anim ...
【C#学习笔记】结构体使用
using System; namespace ConsoleApplication { struct _st { public string name; public int age; } clas ...
Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
C#学习笔记_12_枚举&;结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
随机推荐
转载.net泛型理解说明
net泛型理解 泛型简介: 泛型(Generic Type)是.NET Framework2.0最强大的功能之一.泛型的主要思想是将算法与数据结构完全分离开,使得一次定义的算法能作用于多种数据结构,从 ...
KeilMDK4.7a下载地址/中文乱码解决/自动关联设置
推荐地址1,速度更快(确定为4.7a版本,且含注册机):1./software/keil/MDK470.RAR 2.http://kuai.xunlei.c ...
swift 进阶笔记 (一) —— 可选型
swift定义可选型的时候,要用"?",可是在swift的标准库中,可选型的定义是Optional,"? "仅仅是个简写形式. var myN ...
LeetCode(44)- Isomorphic Strings
题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the c ...
Windows Server -客户端加域端口汇总
简单对客户端加域端口做汇总操作,希望对大家有帮助. 之前有对服务端口做汇总,具体请参照:Windows Server -Active Directory域服务端口汇总:http://blog. ...
Java中的CAS原理
前言:在对AQS框架进行分析的过程中发现了很多CAS操作,因此有必要对CAS进行一个梳理,也便更清楚的了解其原理. 1.CAS是什么 CAS,是compare and swap的缩写,中文含义:比较交 ...
pytorch 参数初始化
/daydayjump/article/details/80899029
Android常见问题及解决方案收集
1.手机安裝Apk时提示“无法打开文件” 出现这个问题,是因为下载的服务端对APK的MIME类型设置错误导致,一般会设置为application/vnd.android,其实这是错误的,应该设置为ap ...
python loggin
一 日志级别 CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 ...
InvalidateRect(转)
///===================该段是自己总结的一个小结================================= InvalidateRect()函数的作用是设置一个无效区域,并 ...