一、结构体

  1、什么是结构体

  2、结构体语法格式

  3、结构体所占内存空间

  4、结构体成员赋值

  二、联合

  1、什么是联合

  2、联合语法格式

  三、枚举

  1、什么是枚举

  2、枚举语法格式

一、结构体

  1、什么是结构体

  • 是一种数据类型

  • 由程序员自定义的数据类型

  • 结构体内可以包含不同类型的成员

  2、结构体语法格式

struct{

  成员;

}变量名;

typedef struct {
  int age;

  char name[20];

}Student2;//别名

  3、结构体所占内存空间

  • 字符对齐规则

-找出占存储空间最大的成员

-以其为单位分配存储空间

-每个成员存放在偏移量对该成员所占字节数取余为0处

  4、结构体成员赋值

int main(int argc, const char * argv[]) {

  struct{

    int i;

    char ch;

    double d;

  }s;

  s.i = 10;

  s.ch = 'A';

  s.d = 3.14;

  printf("%d, %c, %g\n", s.i, s.ch, s.d);

  return 0;

}

二、联合

  1、什么是联合

  • 联合的用法、语法和结构非常相似,但联合中所有成员分配 的内存是同一块。(只能保存一个成员信息,联合的空间以 最大成员所占的空间为值)

  • 联合可以用一块内存对应多种数据类型

  • 联合与结构的区别,结构可以保存多个成员信息,而联合只能保存一个成员信息且最后一个。

  2、联合语法格式

typedef union {

  int age;

  char name[2];

}LianHe;

  

三、枚举

  1、什么是枚举

  • 用字母来描述一组有规律的数值。

  • 枚举的默认值从0开始 ,每个值都是一个整型常量

  • 只能在声明枚举的时候,修改枚举值

  • 修改后的枚举值=上一枚举值加1

  2、枚举语法格式

-enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY};

-typedef enum {FALSE, TRUE} BOOL;

转载于:https://www.cnblogs.com/yyt-hehe-yyt/p/9016191.html

C语言基本语法——结构体、联合和枚举相关推荐

  1. c++ 结构体初始化_【干货】c语言基础语法——结构体

    1.关于C语言结构体的引入 学习环境搭建1_Linux C语言_嵌入式开发工程师-创客学院​www.makeru.com.cn 在实际问题中有时候我们需要几种数据类型一起来修饰某个变量. 例如一个学生 ...

  2. [C语言]结构体进阶与枚举联合

    目录 结构体进阶与枚举联合:: 结构体进阶: 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段 枚举: 枚举类型的定义 枚举的优点 枚举的使用 联合 ...

  3. Go语言基础之结构体

    转载地址:https://www.liwenzhou.com/posts/Go/10_struct/ Go语言中没有"类"的概念,也不支持"类"的继承等面向对象 ...

  4. C语言小记:结构体及其在内存中的储存形式

    C语言小记:结构体及其在内存中的储存形式 1.结构体 结构体的作用:自定义一个包含多种不同数据类型的变量. 语法: struct 结构体名称 {结构体成员1:结构体成员2:结构体成员3:... } 定 ...

  5. Linux结构体变量报错,C语言中的结构体

    用户自己建立自己的结构体类型 1.  定义和使用结构体变量 (1).结构体的定义 C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体. (2).声明一个结构体类型的一般形式为: ...

  6. c语言动态生成结构体结构,C语言实现动态结构体数组

    C语言实现动态结构体数组 原因是因为以前使用C++来实现的,主要用VERCTOR C++标准库的失代器 而不是纯C:C++是C语言的超集,除了包含C外,还有C++各种新语法,新库! 不过虽然C++用起 ...

  7. SCL语言的语法结构

    SCL语言的语法结构如下: 1. 声明段(Declaration Section):在声明段中定义程序中使用的变量.数据类型等信息.声明段以`VAR`关键字开始,以`END_VAR`关键字结束.例如: ...

  8. 10.Go语言基础之结构体

    Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 ...

  9. go语言学习:结构体

    结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 1.1. 类 ...

最新文章

  1. 智能汽车带火汽车存储产品 三星/东芝/SK海力士/美光纷纷“下手”
  2. python中调用函数时必须有实参_Python之函数(一)定义函数以及传参
  3. 九维 Addon for SBO 功能说明及新版软件下载
  4. 03-26 网络流量分析
  5. SQOOP 导出Hive数据到MySQL
  6. 短信开发系列(二):GSM手机短信开发之短信解码
  7. 安卓平台病毒猖獗 日感染15000台
  8. win10未检测到任何音频设备解决办法
  9. win7做ftp服务器是否稳定,win7可以做ftp服务器吗
  10. shell脚本基础教程,快速上手
  11. nginx反向代理是什么?
  12. SpringBoot结合Redis实现维护客户端登录状态
  13. 人一个月瘦多少斤比较合适
  14. html中的函数怎么显示变量,css - 原生变量及使用函数 var()
  15. ad hoc java_Java并发编程--线程封闭(Ad-hoc封闭 栈封闭 ThreadLocal)
  16. 具有跳跃性思维的算法
  17. C#产生随机数之一 生成真随机数
  18. 系统学习iOS动画之六:3D动画
  19. 计算机视觉和图像识别简介
  20. 精读Translating and Segmenting Multimodal Medical Volumes with Cycle- andShape-Consistency Generative

热门文章

  1. 基于FPGA的DDR3多端口读写存储管理系统设计
  2. 自己眼中的淡定生活!
  3. 分布式缓存系统 Memcached 【转载】
  4. python爬取小说网站资源_利用python的requests和BeautifulSoup库爬取小说网站内容
  5. Word2016Word2019如何取消自动编号
  6. python线程池并发爬虫_python 并发专题(二):python线程以及线程池相关以及实现...
  7. android 类的设计,Android App的类响应式设计
  8. 宅家办公不宅心,送3本技术好书
  9. DekBox代币DEK已完成首次减产
  10. DeFi巨鲸0xb1向DeBank打赏5 ETH