c语言中的结构体

复制代码
#include <stdio.h>
复制代码
/*结构体的概念及定义:
复制代码
 *
复制代码
 * 构造类型:
复制代码
 * 不是基本类型的数据结构也不是指针,它是若干个相同或不同类型的数据构成的集合
复制代码
 * 常用的构造类型有数组、结构体、公用体。
复制代码
 * 数组用于保存多个相同类型的数据。结构体用于保存多个不同类型的数据。
复制代码
 * 结构体概念:
复制代码
 * 结构体是一种构造类型的数据结构
复制代码
 * 是一种或多种基本类型或构造类的数据的集合
复制代码
 * 结构体类型的定义:
复制代码
 * (1)先定义结构体类型,再去定义结构体变量。
复制代码
 * struct 结构体类型名{
复制代码
 * 成员列表
复制代码
 * };
复制代码
 * struct stu{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * cahr sex;
复制代码
 * };
复制代码
 * 有了结构体类型之后,就可以定义变量了;
复制代码
 * struct stu lucy,bob,lilei;//定义了三个struct stu类型的变量注意不能省略struct。
复制代码
 * 每个变量有三个成员,分别是num name sex
复制代码
 * (2)在定义结构体类型的时候顺便定义结构体变量,以后还可以定义结构体变量
复制代码
 * struct 结构体类型名{
复制代码
 * 成员列表
复制代码
 * }结构体变量1,结构体变量2;
复制代码
 * struct 结构体类型名 变量3,变量4;
复制代码
 * struct stu{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * char sex;
复制代码
 * }lucy,bob,lilei;
复制代码
 * struct stu xiaohong,xiaoming;
复制代码
 * 注意:
复制代码
 * 一般结构体类型都会定义在全局,也就是main函数的外面
复制代码
 * 所以在定义结构体类型的同时定义变量,这些变量一般都是全局变量
复制代码
 * 定义完类型之后定义的结构体变量内存分配要看定义的位置。
复制代码
 * (3)在定义结构体类型的时候,没有结构体类型名,顺便定义结构体变量,
复制代码
 * 因为没有类型名,所以以后不能在定义相关类型的数据了
复制代码
 * strucr{
复制代码
 * 成员变量;
复制代码
 * }变量1,变量2;
复制代码
 * struct{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * char sex;
复制代码
 * }lucy,bob;
复制代码
 * 注意:无名结构体由于没有结构体名,所以在定义完之后是无法再定义结构体变量的,
复制代码
 * 只能在定义类型的同时定义结构体变量
复制代码
 * (4)最常用方法
复制代码
 * 通常咱们将一个结构体类型重新起个类型名,用新的类型名替代原先的类型
复制代码
 * 步骤1:先用结构体类型定义变量
复制代码
 * struct stu{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * char sex;
复制代码
 * }bob;
复制代码
 * 步骤2:新的类型名替代变量名
复制代码
 * struct stu{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * char sex;
复制代码
 * }STU;
复制代码
 * 步骤3:在最前面加typedef
复制代码
 * typedef struct stu{
复制代码
 * int num;
复制代码
 * char name[20];
复制代码
 * char sex;
复制代码
 * }STU;
复制代码
 */
复制代码
int main()
复制代码
{
复制代码
    printf("Hello World!\n");
复制代码
    return 0;
复制代码
}
复制代码
相关推荐
xiaoye-duck10 分钟前
【C++:unordered_set和unordered_map】 深度解析:使用、差异、性能与场景选择
开发语言·c++·stl
_日拱一卒20 分钟前
LeetCode:滑动窗口的最大值
数据结构·算法·leetcode
zjjsctcdl25 分钟前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
格林威28 分钟前
Baumer相机锂电池极片裁切毛刺检测:防止内部短路的 5 个核心方法,附 OpenCV+Halcon 实战代码!
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
老约家的可汗31 分钟前
list 容器详解:基本介绍与常见使用
c语言·数据结构·c++·list
Book思议-32 分钟前
【数据结构】字符串模式匹配:暴力算法与 KMP 算法实现与解析
数据结构·算法·kmp算法·bf算法
顶点多余38 分钟前
线程互斥+线程同步+生产消费模型
java·linux·开发语言·c++
Albert Edison40 分钟前
【ProtoBuf 语法详解】更新消息|保留字段|未知字段
开发语言·c++·protobuf
feifeigo12341 分钟前
近场声全息(NAH)数据与MATLAB实现
开发语言·matlab
fie88891 小时前
基于MATLAB的非线性模型预测控制(NMPC)在CSRT系统中的应用
开发语言·matlab