C语言结构体与枚举等类型
来源:互联网 发布:南昌java培训费用 编辑:程序博客网 时间:2024/05/22 00:25
一、C语言结构体
结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下:
1、结构体定义的三种形式:
1> 先定义结构体类型,再定义结构体类型变量:
struct stu / *定义学生结构体类型* /{ char name[20]; / * 学生姓名* / char sex; / * 性别* / long num; / *学号* / float score[3]; / * 三科考试成绩* /};struct stu student1,student2;/ * 定义结构体类型变量* /struct stu student3,student4;
用此结构体类型,可以定义更多的该结构体类型变量。
2> 定义结构体类型同时定义结构体类型变量:
struct data{ int day; int month; int year;} time1,time2;
也可以再定义如下变量:
struct data time3,time4;
用此结构体类型,同样可以定义更多的该结构体类型变量。
3> 直接定义结构体类型变量:
struct{ char name[20]; / *学生姓名* / char sex; / *性别* / long num; / *学号* / float score[3]; / *三科考试成绩* /} person1,person2; / *定义该结构体类型变量* /
该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。
2、结构体用法
1> 基本用法
如:
struct Person // 这一句只是定义结构体类型,并不会分配存储空间。 {int age;double height;char *name;}struct Person p1 = {10, 1.55,"jack"}; //这一步才开始定义结构体变量,开始分配存储空间。printf("age = %d,height = %f,name = %s",p1.age,p1.height,p1.name); //调用打印。
2> 所占内存:结构体所占存储空间一定为最大成员所占空间的倍数。如结构体含有int 和char *,原本应该是4+8,那么最后应该是16。
3> 如果我们再定义一个结构体变量,struct Person P2={.height= 1.34;.age=12;.name="sfd"};
p2 = p1; // 会将p1所有的成员变量对应的值赋给p2的成员。
二、结构体数组
1、结构体数组定义举例:
struct stu s[3]={{1,"jack",300},{2,"rose",400},{3,"kim",200}}
如果更改某组数值,不可以用s[0]={4,"tom",600};
只能是s[0].no =4;这样去修改。
三、结构体嵌套
1、结构体嵌套举例:
struct Date{ int year; int month; int day;};struct Student{ int no; struct Date birthday;//嵌套结构体定义生日 struct Date ruxueriqi //嵌套结构体定义入学日期} struct Student stu = {1,{2000,9,10},{2012,8,23}};printf("year = %d,month = %d,day = %d",stu.birthday.year, stu.birthday.month, stu.birthday.day);
三、枚举类型
1、枚举类型举例:
如果一种变量只有几种可能的值,可以定义为枚举类型。所谓“枚举类型”是将变量的值一一列举出来,变量的值只能在列举出来的值的范围内。
enum Season{spring,(默认值为0,后面依次加一)summer,autumn,winter};//定义枚举类型enum Season s;//定义枚举类型变量
0 0
- C语言结构体与枚举等类型
- C语言------结构体、枚举类型
- C语言(结构体、枚举类型、类型定义)
- c语言基础知识_结构体访问,共同体,枚举类型
- C语言 构造类型(结构体、枚举)
- C++结构体、联合、枚举与C语言中的区别
- C语言结构体,联合体,枚举与typedef
- 结构体类型与枚举类型
- 【C语言】联合与枚举类型
- C语言枚举类型
- C语言枚举类型
- C语言枚举类型
- C语言 枚举类型
- C语言- 枚举类型
- C语言枚举类型
- C语言枚举类型
- C语言枚举类型
- C语言:枚举类型
- codeforces 431B Shower Line
- 多个iframe同时加载并动态调整大小
- UVA - 539 The Settlers of Catan
- VMware 10.0 + Mac OS X 10.9.5 安装详解
- centos 7安装flash插件
- C语言结构体与枚举等类型
- 为什么会有50万人选择北大青鸟?
- 第k最短路A*启发式搜索
- 简单的中文图片验证码的生成
- jquery UI学习笔记-知问前端之自动补全工具UI的tooltip
- 私服发布Maven
- Android Binder机制
- leetcode刷题笔记之最长共同前缀
- C和指针 一