C语言学习笔记 内存(三)自定义数据类型(一)结构体(一)

本文介绍了结构体作为数据结构的优势,它允许不同类型的数据组合在一起,弥补了数组的局限性。结构体的定义不占用内存,只有在创建变量时才会分配空间。文章详细阐述了结构体变量的三种定义方式,以及如何初始化和引用结构体成员。强调了未初始化成员的默认值,并指出不能直接对结构体类型成员进行操作。
摘要由CSDN通过智能技术生成

数组相对于基本数据类型,其更方便快速定义大量数据且能表示其具有一定的内在关系,但是数组只能包含具有相同类型的数据,所以出现了可以由不同数据类型建立的数据结构——结构体。

定义

struct A {
  int a;
  float b;
  double c;
};

声明结构体类型的一般形式就是如此:

struct 结构体名

{成员表列};

声明结构体不占用内存空间,只有定义变量后才会分配内存空间

空间大小与结构体的组成有关

定义结构体的变量,有三种方式:

  • 在声明结构体后,定义结构体变量
struct A A1,A2;
  • 在声明的同时定义变量
struct A {
  int a;
  float b;
  double c;
}A3,A4;
  • 不指定类型名直接定义
struct{
  int a;
  float b;
  double c;
}A5,A6;

初始化和引用

  • 在定义结构体变量时进行初始化(对变量初始化而不是类型)
struct{
  int a;
  float b;
  double c;
}A7={1,5,3};

按顺序给成员赋值

也可以指定成员赋值

struct{
  int a;
  float b;
  double c;
}A8={.a=10};

未赋值的成员数值型为0 字符型为\0 指针为null

  • 引用结构体成员的值一般形式:

结构体变量.成员名

.的优先级是最高的

  • 如果成员是结构体,只能对最低一级进行操作

不能直接对结构体类型成员操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值