C语言经典---结构体


结构体也属于构造类型.结构体比数组更加灵活,可以存放不同类型的变量

结构体是由若干组成员组成的,成员既可以是基本数据类型.又可以是构造类型,比如数组

结构体属于自定义数据类型

1.结构体声明:

struct 结构体名

{

类型说明符  成员名;

…;

类型说明符  成员名;

};  //注意此处分号不能少.

结构体是自定义类型,结构体变量是由结构体类型修饰的变量.

定义结构体变量

struct 结构体名 变量名 = {初值} ;

结构体成员访问

结构体成员的表示形式

结构体变量,成员

typedef为现有的类型创建一个新的名字,或称为类型别名

typedef  原类型 新类型

typedef int integer

这样

int a = 10;

可以写成:

integer a = 10;

结构体变量可以直接赋值

注意

虽然数组和结构体都属于构造类型,但是结构体变量能直接赋值,数组不能直接赋值

小技巧:

可以通过把数组放在结构体内实现数组的直接赋值

结构体内存占用:

结构体所占的空间可以简单的认为是各个成员所占内存的空间之和

实际上是最大成员变量所占空间的最小整数倍

当数组这种构造类型的数据整体所占的字节数大于结构体成员变量中最大的数据类型所占的字节时,数组就会拆分对齐

计算机中内存对齐原则的本质就是为了CPU能够有效的通过地址访问相关内存.

结构体嵌套

结构体的成员仍然可以是结构体

结构体数组

可以将多个结构体变量放到数组中,构成结构体数组.

例如: struct stu students[10]

可以通过下标可以访问每个结构体变量

C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码

读C++ Primer 之构造函数陷阱

读C++ Primer 之智能指针

读C++ Primer 之句柄类

将C语言梳理一下,分布在以下10个章节中:

  1. Linux-C成长之路(一):Linux下C编程概要
  2. Linux-C成长之路(二):基本数据类型
  3. Linux-C成长之路(三):基本IO函数操作
  4. Linux-C成长之路(四):运算符
  5. Linux-C成长之路(五):控制流
  6. Linux-C成长之路(六):函数要义
  7. Linux-C成长之路(七):数组与指针
  8. Linux-C成长之路(八):存储类,动态内存
  9. Linux-C成长之路(九):复合数据类型
  10. Linux-C成长之路(十):其他高级议题

本文永久更新链接地址:

相关内容