码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员——c语言基础:结构体和枚举---typedef的使用

时间:2015-04-29 09:47:12      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、什么是结构体

当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。

在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数

据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型。

 为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的。

 

二、

 

1.定义形式

 结构体内部的元素,也就是组成成分,我们一般称为"成员"。

结构体的一般定义形式为:

 struct 结构体名{

类型名1 成员名1;

类型名2 成员名2;   

};

比如,我们定义一个学生类

技术分享

 

三、结构体变量的定义

前面只是定义了名字为Student的结构体类型,并非定义了一个结构体变量,就像int一样,只是一种类型。

定义结构体的方式一般有三种

1.先定义结构体类型,再定义变量

2.定义结构体类型的同时定义变量

技术分享

3.直接定义结构体类型变量,省略类型名

技术分享

 

四、结构体的注意点

1.结构体不可以包含自己

技术分享

2.结构体内可以包含别的结构体

技术分享

 

3.只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量

技术分享

结构体的初始化

将各成员的初值,按顺序地放在一对大括号{}中,并用逗号分隔,一一对应赋值。

比如初始化Student结构体变量stu

技术分享

结构体只能在定义变量的时候赋初值

技术分享

 

枚举

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。

当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

1.枚举的定义

1)枚举类型的定义

一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};

技术分享

 

2)枚举变量的定义

跟结构体一样,有3种方式定义枚举变量

1>先定义枚举类型,再定义枚举变量

技术分享

 

2>定义枚举类型同时,定义枚举变量

技术分享

3>省略枚举类型名,直接定义枚举变量

技术分享

 

2.枚举的使用

1)C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量。

2)枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。

技术分享

 

3)也可以在定义枚举类型时改变枚举类型的值

技术分享

 

3.枚举变量的基本操作

赋值

 

可以给枚举变量赋枚举常量或者整型值

技术分享

 

遍历枚举元素

技术分享

 

 

typedef

1.typedef作用简介

1)我们可以使用typedef关键字为各种数据类型定义一个新名字

 

技术分享

2)我们还可以在别名的基础上再起别名

技术分享

 

typedef与指针

 

除开可以给基本数据类型起别名,typedef也可以给指针起别名

技术分享

 

typedef与结构体

 

给结构体起别名可以使代码更加简洁明

技术分享

 

typedef与枚举类型

技术分享

 

 

typedef与指向函数的指针

1)先看一下指向函数的指针如何定义

技术分享

 

 

总结:

1.需要先定义结构体类型,再定义结构体变量。定义结构体类型时,系统是不分配内存空间的。系统只分配内存空间给实际的结构体变量。

2.结构体变量所占内存大小:补齐算法——最大元素的倍数。
3.枚举元素值从0开始,后续元素依次+1。

4.typedef的使用

黑马程序员——c语言基础:结构体和枚举---typedef的使用

标签:

原文地址:http://www.cnblogs.com/qiang0901/p/4465003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!