C-结构体

结构体

概念

结构体是一个或多个成员的集合,各个成员之间可能具有不同的数据类型

 

结构体的声明

声明结构体时,必须列出它包含的所有成员,具体包括每个成员的名字和类型

栗子1如下图,声明了一个x变量的结构体,它包含三个成员变量:一个整数,一个字符,一个浮点数

struct {
    int a;
    char b;
    float c;
} x;

 

栗子2如下图,声明了y和z,y是一个数组,包含10个结构体;z是一个指针,指向这个类型的结构体

struct {
    int a;
    char b;
    float c;
} y[10], *z;

 

结构体的初始化

struct date {
    int year;
    int month;
    int day;
};

//init method1
struct date today1 = {2020, 01, 28};

//init method2
struct date today2 = {.year=2020, .month=01, .day=28};

 

结构体的操作

对于整个结构体,可以赋值,取地址,作为参数传递给函数,结构体作为函数的返回值

 

结构作为函数参数,函数会在内部新建一个结构变量,并复制调用者的结构的值

 

结构指针

结构变量的名字并不是结构变量的地址,所以必须用&运算符

用->表示指针所指向的结构变量的成员

结构指针作为参数的好处:传入传出只是一个指针的大小

如果想要传入的结构不被函数修改:const struct point *p

返回传入的指针是一种套路

 

posted @ 2020-07-28 07:27  可口可乐嗨  阅读(129)  评论(0编辑  收藏  举报
levels of contents