C语言基本语法——结构体、联合和枚举
一、结构体
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;
C语言基本语法——结构体、联合和枚举的更多相关文章
- Go语言基础之结构体
Go语言基础之结构体 Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. 类型别名和自定义类型 自定义类型 在G ...
- C语言第九讲,结构体
C语言第九讲,结构体 一丶结构体的定义 在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据.结构体的定义形式为: struct 结构体名{ 结构体所包含的变量或数组 }; 结构体是一种 ...
- GO学习-(13) Go语言基础之结构体
Go语言基础之结构体 Go语言中没有"类"的概念,也不支持"类"的继承等面向对象的概念.Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性. ...
- C语言中的结构体,结构体数组
C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...
- 4-17疑难点 c语言之【结构体对齐】
今天学习了结构体这一章节,了解到了结构体在分配内存的时候采取的是对齐的方式 例如: #include<stdio.h> struct test1 { int a; char b; shor ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct) C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...
- Verilog缺少一个复合数据类型,如C语言中的结构体
https://mp.weixin.qq.com/s/_9UsgUQv-MfLe8nS938cfQ Verilog中的数据类型(Data Type)是分散的,缺少一个复合数据类型:把多个wire, r ...
- [汇编与C语言关系]4. 结构体和联合体
用反汇编的方法研究一下C语言的结构体: #include <stdio.h> int main(int argc, char ** argv) { struct { char a; sho ...
- Go语言中的结构体 (struct)
Golang官方称Go语言的语法相对Java语言而言要简洁很多,但是简洁背后也灵活了很多,所以很多看似很简单的代码上的细节稍不注意就会产生坑.本文主要对struct结构体的相关的语法进行总结和说明. ...
随机推荐
- kernel相关前沿技术了解
Intel MPX https://en.wikipedia.org/wiki/Intel_MPX SPDK http://aidaiz.com/spdk/ TCMalloc http://goog- ...
- nyoj2-吝啬的国度
吝啬的国度 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...
- P1892 团伙
题目描述 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友. 两个强盗是同一团伙的 ...
- 在windows环境中关于 pycharm配置 anaconda 虚拟环境
因为要在windows系统系统中练习tensorflow,所以需要配置一下环境(来回的开关机切换环境太麻烦了......) 首先安装anaconda3,我选择的版本是Anaconda3 5.1.0,对 ...
- php中的form表单
表单处理 表单的概念在生活中很常见,就像是问卷调查表一样,别人先把问卷发给你,你照着问卷的要求填写,完事过后再将填完的问卷发给别人,从而达到一个将别人需要的信息传递给别人的一种方式. 传统的网页大多数 ...
- 驱动中的IO访问
1,内存空间与IO空间 1)I/O 映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间 ...
- BA-闭式冷却塔系统
- 计算机-award BIOS全教程
- 带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用。除非是main里的局部变量。因为main方法就是static的啊。
带有public static void main方法的类,其中的成员变量必须是static的,否则main方法没法调用.除非是main里的局部变量.因为main方法就是static的啊.
- Mac OSX Yosemite 10.10 brew 错误:mktemp: mkdtemp failed on /tmp/git-LIPo: No such file or directory
这个问题困扰了我非常久非常久.使得我不得不花一点时间来说一下解决方法. 事情是这种:前两天兴高採烈的更新了一下宝贝mac到10.10. 一切看起来都那么美好,可是. .当我又一次安装magento的时 ...