C语言结构体_学习笔记
结构体声明
典型的结构体声明代码如下:
struct book{
char title[40];
char author[40];
float value;
};
结构体声明主要由关键字"struct" 、结构名、{结构体成员列表;}和最后面的";"组成。
定义结构体变量
此前已经对新的结构体book进行声明,编译器已知struct book包含两个char数组和一个float类型的数据,但此时并未给 struct book分配任何空间,需要对结构体变量进行定义,代码如下:
struct book library;
此时,编译器会为变量library分配一个 struct book大小的内存,就像int类型中:
int a;
一样为int型变量a分配4*8个字节的内存空间。
初始化结构体变量
跟数组初始化相同,结构体可以以花括号的方式进行初始化,代码如下:
struct book library={
"C Primer Plus",
"Stephen Prata",
108.00
};
{}中间的项目要用逗号隔开。
访问结构体成员
访问结构体成员的方式如下:
library.value=108.00; //float
library.author=""; //字符串
library.title=""; //字符串
此时结构体成员可以与结构体声明时的基本数据类型一样可以被访问、赋值,只是要加上结构体变量名和符号"."。
嵌套结构体
有如下代码:
struct name{ //第一个结构
char first[20];
char last[20];
};
struct guy{
struct name handle; //第二个结构使用第一个结构作为成员,嵌套
char favfood[20];
char job[20];
float income;
}
对嵌套结构体定义并初始化的方式为:
struct guy fellow={
{"Chen","Guohao"},
"banana",
"basketball player",
1900.00
};