6.1 结构体的声明
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
内置类型:char;short;int;long;long long;float;double
复杂对象的描述就会使用到:结构体。
结构的声明:
结构成员的类型:
结构的成员可以是标量、数组、指针,甚至是其他结构体。
结构体变量的定义和初始化:
6.2 结构体的初始化
6.3 结构体成员访问
结构体变量访问成员: .
结构变量的成员是通过点操作符(.)访问的。点操作符接受两个操作数。//结构体变量.成员变量
结构体指针访问指向变量的成员: —>
//结构体指针->成员变量
6.4 结构体传参
函数传参的时候,参数是需要压栈的,占用内存空间,所以结构体传参的时候,要传结构体的地址。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>//结构的声明:
struct people //struct+名
{//成员变量char name[18];char phone[12];char sex[5];int high;
};struct sr
{struct people p;char school[20];char work[20];
};void print0(struct people* p1)//接收地址
{printf("%s %s %d %s\n", p1->name, p1->sex, p1->high, p1->phone);//结构体指针->成员变量}void print1(struct people p1)//接收形参,占用内存空间
{printf("%s %s %d %s\n", p1.name, p1.sex, p1.high, p1.phone);//结构体变量.成员变量}int main()
{//使用struct People结构类型创建2个变量struct people p1 = {"张三","13567519419","男",177};//结构体变量初始化struct sr p2 = { {"李红","13867816316","女",165},"南京大学","工程师"};//结构体嵌套printf("姓名:%s 性别:%s 身高:%d 号码:%s\n", p1.name, p1.sex, p1.high, p1.phone);printf("姓名:%s 性别:%s 学校:%s 职业:%s 身高:%d 号码:%s\n", p2.p.name, p2.p.sex, p2.school, p2.work, p2.p.high, p2.p.phone);print0(&p1);//传地址print1(p1);//传实参return 0;
}