C数组允许存储同一种数据类型的变量,结构体是C允许用户自定义的数据结构,用来存储多个不同数据类型变量。

结构用于表示一条记录,假设您想要跟踪图书馆中书本的动态,您可能需要跟踪每本书的下列属性:

  • Title
  • Author
  • Subject
  • Book ID

定义结构

为了定义结构,您必须使用 struct 语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:

struct tag { member-list member-list member-list ... } variable-list ;

tag 是结构体标签。

member-list 是标准的变量定义,比如 int i; 或者 float f,或者其他有效的变量定义。

variable-list 结构变量,定义在结构的末尾,最后一个分号之前,您可以指定一个或多个结构变量。

举例:

struct {int a;double b;char c;
}s1;

struct { } 是一个数据结构,类型与int,char。上面的代码声明了含有三个元素的结构体,并且声明了结构体变量s1。

struct SIMPLE{int a; char b;double c;};

/此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

//结构体的标签被命名为SIMPLE,没有声明变量

//用SIMPLE标签的结构体,另外声明了变量t1、t2、t3 struct SIMPLE t1, t2[20], *t3;

struct SIMPLE t1, t2[20], *t3;

//也可以用typedef创建新类型,可以用Simple2作为类型声明新的结构体变量 Simple2 u1, u2[20], *u3;

typedef struct {int a;double b;char c;
}Simple3;
Simple3 s1,s2,s3;

typedef用来定义新的数据类型,将struct{}用Simple3来表示,所以可以用Simple3对s1,s2,s3声明。

C语言之struct相关推荐

  1. c语言struct_Introduction to CSAPP(十七):复杂数据组织与C语言的 struct与union

    如果说数组是同一种类型的数据的连续排列的数据组织形式,那么对于不同类型的数据来说,他们被有机组织起来的方式有两种,分别是struct和union. Struct C语言的 struct 创建一种数据类 ...

  2. C 语言和C++语言的 struct对比

    C 语言和C++语言的 struct对比 author: stonehat 1. C++语言将struct当成类来处理的,所以C++的struct可以包含C++类的所有东西,例如构造函数,析构函数,友 ...

  3. C语言的struct和C++的class的区别

    C语言的struct不能有成员函数,没有静态成员,成员属性默认为public且不能修改(所以没有实现封装),不能继承,不能直接初始化数据成员 所以C++的class的继封装.继承.多态C语言的stru ...

  4. c++ 结构体初始化_C/C++编程笔记:C语言和C++语言的 struct 对比!区别在哪里?

    1. C++语言将struct当成类来处理的,所以C++的struct可以包含C++类的所有东西,例如构造函数,析构函数,友元等,C++的struct和C++类唯一不同就是 struct成员默认的是p ...

  5. linux timeval,Linux上关于C语言的struct timeval{}的一道题

    Linux下关于C语言的struct timeval{}的一道题 结构定义中有: struct timeval{ long tv_sec; long tv_usec; }; 设计一个程序:计算机屏幕呈 ...

  6. go语言的struct

    go语言的定义以及go语言中变量或者属性大小写影响可见性 package mainimport "fmt"type Course struct {name stringprice ...

  7. 关于C语言里面struct的相关知识

    前言: 学过C语言的朋友都知道里面的数组,我们可以定义一个数组来储存相同类型的数据 比如 char arr1[ 10 ];我们就能用arr1的数组来保存10个类型为char的数据,但是这种功能是否够人 ...

  8. c语言union字节相同大小不同,C语言的struct/union字节对齐

    C语言的一大优势就是对内存空间的控制,当然,一般情况下对于开发人员来说都是透明的.看一个始终困扰初学者的问题:字节对齐! 先看四个重要的基本概念: 1.数据类型自身的对齐值: 对于char型数据,其自 ...

  9. c++与c语言的struct和type struct区别

    struct和typedef struct区别 1 c语言 在C中定义一个结构体类型可用typedef简化声明变量语句,少写一个struct单词 //c语言定义结构体一般使用如下方式 typedef ...

  10. C语言里struct和union的区别

    struct和union是C语言的两种数据结构,这两种都是常用的复合结构. 区别: (1) 联合体:所有成员共用一块地址空间,也就是说联合体只放了一个被选中的成员: 结构体:所有的成员的内存占用是累加 ...

最新文章

  1. YOLOv4中的tricks概念总结——Bag of freebies
  2. Visio绘制功能分解图
  3. 鼠标取点——ginput()和getpts()详解
  4. 数据安全审查综合解读|如何从被动合规到主动战略风控?
  5. 我回答的一个粉丝关于用编程语言模拟SAP事务的问题
  6. 使用Swagger轻松记录您的Play Framework REST API
  7. 2021—2022学年面向中小学生的全国性竞赛活动名单
  8. Python笔记-使用uiautomator2编写某APP注册机
  9. 三星Galaxy S21 FE即将量产:8月登场 小屏满血旗舰!
  10. 微信支付国庆消费数据出炉:门票交易增幅超8成 酒店行业交易增幅超7成
  11. python对象传递_Python参数传递对象的引用原理解析
  12. opencv 中从cv::line和resize()函数
  13. 将windows c盘安装在linux,将WindowsC盘hda1安装在Linux文件系统的/winsys目录下,命令是()。...
  14. 第一次冲刺-个人工作总结06
  15. nlp n-gram_NLP中的单词嵌入:一键编码和Skip-Gram神经网络
  16. phpstudy使用数据库教程
  17. 如何区分网线是几类的_怎么看网线是几类网线?
  18. 微信小程序超出内容换行
  19. 视频剪辑配乐技巧 视频剪辑配音推荐
  20. c# https请求忽略证书验证_C# httpwebrequest访问HTTPS错误处理方法

热门文章

  1. Spring boot 实战指南(二):Mybatis、动态绑定、多数据源、分页插件、Mybatis-Plus
  2. LiquiBase实战总结
  3. 网络:tcp长连接与短连接
  4. Storm部分:Storm Grouping -- 数据流分组(各种数据分发策略的练习)【Java版纯代码】
  5. latex 分页_latex中多行表格分页问题
  6. MeEdu开源网校系统-手动安装教程(完整版)
  7. python提取html表格_python html提取表格数据库数据库
  8. violate关键字
  9. Python入门(二)之Python的集成开发环境(IDE)
  10. opencv 识别长方形_使用OpenCV检测图像中的矩形