本文将详细探讨C语言中几种常见的自定义数据类型:结构体(Struct)、联合体(Union)、枚举(Enum,侧重于其自定义用法的高级特性)以及类型定义(Typedef),并对每种类型的定义、使用场景、注意事项及高级特性进行详细说明。 1. 结构体(Struct) 结构体是C语言中一种复合数据类型,它允许将不同类型的数据项组合成一个单一的类
C语言自定义数据类型(一) 一、前言 我们为什么要自定义数据类型呢? C语⾔已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类 型还是不够的,假设我想描述学⽣,描述⼀本书,这时单⼀的内置类型是不⾏的。描述⼀个学⽣需要 名字、年龄、学号、⾝⾼、体重等;描述⼀...
关于下面讲到的所有自定义数据类型(enum、struct、union),有一点要说的是:定义类型不是声明变量,做这步操作时不分配内存,也不能在定义类型时赋值(枚举那个不是赋值,是做一个限定,赋值时赋限定之外的值也不报错。)。 1、typedef (给类型起别名的关键字) // C语言中给数据类型起别名的同时不能声明变量。//...
include <stdio.h>intmain(){enumColor{red, yellow, blue, white, black };//enum 类型名:定义枚举类型enumColori,j,k;//定义枚举变量i,ji = red; j = blue,k = yellow;//给枚举变量赋值,只能是上面花括号里的内容printf("%d,%d,%d", i,j,k);//输出的是整数,输出"0,2,1"} include <stdio...
联合类型的定义 联合的特点 联合大小的计算 二、结构体 1.结构体的声明 普通结构体 匿名结构体(必须根据变量列表直接创捷结构体变量否则在其他地方无法创建) 上面两个结构体在声明的时候省略掉了结构体标签(tag) 但是这种赋值的写法是非法的,编译器会把上面两个声明当成完全不同的两个类型,所以需要注意。
【C】C语言自定义数据类型 结构体 参考视频:https://www.bilibili.com/video/BV1oi4y1g7CF?p=58 大纲: 结构体的声明 结构体的自引用 结构体内存对齐 结构体传参 结构体实现位段(位段的填充&可移植性) char short int long short float double -这些都叫做内置类型,是C语言自己的类型 ...
1)typedef并不是创建了一个新类型,而是给一个已有类型创建了一个新的名字 2)typedef主要用来简化类型名和统一定义变量的方式(重命名函数和数组) 3)struct用于自定义新类型,能够将不同数据类型的变量组成一个集合。struct创建新类型是一条合法的语句,因此要以分号;结束,里面的每个定义变量的语句,也都是以分号;结束...
1. 定义结构体类型 前面定义使用的变量基本是相互独立、五无在联系的,在内存中的地址也是互不相干的。但在实际生活和工作中,有些数据是有内在联系的、成组出现的。例如,一个学生的学号、姓名、性别、年龄等,是属于同一个学生的。如果将这些变量分别定义为相互独立的简单变量,难以反映他们之间的内在联系,而数组又只...
C语言自定义数据类型——结构体、共用体、枚举 目录 一、 结构体的基本用法 1.1 定义 1.2 定义格式 1.3 结构体变量 1.3.1 概念 1.3.2 格式 1.3.3 定义结构体变量 (1) 先定义结构体,再定义结构体变量。 (2) 定义结构体的同时,定义结构体变量。 1.3.4 结构体变量赋值 (1) 定义结构体变量时直接用花括号...