c语言进阶之——结构体

CSDN话题挑战赛第2期
参赛话题:学习笔记

c语言自定义类型(c语言进阶自定义类型——结构体,详细介绍

  • 结构体的基础知识
  • 结构体的声明
    • 语法
    • 特殊的声明
    • 两种创建方法
  • 结构的自引用
  • 结构体变量的定义和初始化
    • 结构成员的类型
    • 定义和初始化
  • 结构体成员的访问
  • 结构体内存对齐
    • 结构体的对齐规则:
    • 举例画图计算结果体大小
    • 使用offsetof宏验证我们的计算
    • 为什么存在内存对齐
    • 修改默认对齐数
  • 结构体传参
  • 结构体体实现位段
    • 什么是位段
    • 位段的内存分配
    • 位段的跨平台问题
    • 位段的应用

c语言进阶之——结构体_第1张图片

c语言进阶之——结构体_第2张图片

结构体的基础知识

结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。(区别数组:数组是一组相同类型的值的集合)

结构体是用来描述复杂对象的


结构体的声明

语法

c语言进阶之——结构体_第3张图片
比如,我们在此用结构体定义一个人这个类型

struct Peo
	{
   
		char name[20];//名字
		char tele[12];//电话//字符串要多一个来打印/0
		char sex[5];//性别
		int high;//身高
	};//注意这个;

注:
1.注意结构体定义之后的;
2.变量列表可以没有,如果是在main函数之外创建的结构体变量属于全局变量

特殊的声明

//匿名结构体类型
struct 
	{
   
		char name[20];
		char tele[12];
		char sex[5];
		int high;
	}s1;

结构体标签可以省略,为匿名结构体类型,但是使用匿名结构体类型创建的变量只可以使用一次
特点:虽然是匿名结构体类型,但是创建出两个匿名结构体类型依然不是相同的类型

两种创建方法

struct Peo
{
   
	char name[20];//名字
	char tele[12];//电话
	char sex[5];//性别
	int high;//身高
}p1;
int main()
{
   
	
	struct Peo p2

你可能感兴趣的:(课程学习心得总结,c语言,链表,数据结构)