欢迎光临
我们一直在努力

C语言快速入门10-结构体

1.什么是结构体

重点是不同的数据类型的变量的结合
在这里插入图片描述

可以理解结构体的数据类型就是struct,结构体名字person,具体赋值的,就是变量名称。结构体内部包含各类数据类型的变量数据集。
切记结构体里面的成员变量,尾部需要分号,不是逗号结尾。
在这里插入图片描述

2.如何使用结构体

定义与初始化结构体,
在这里插入图片描述

访问结构体的成员变量以及值的设定。
在这里插入图片描述

#include <stdio.h>

struct person{
char name[20];
int age;
char sex[10];

};

int main(void)
{
struct person a={"pepole",19,"man"};// 字符串不可以是单引号 ,C中字符串应该用双引号,单引号用于字符常量
printf("%s",a.name);//pepole
printf("\\r\\n");
printf("%d",a.age);//19
printf("\\r\\n");
printf("%s",a.sex);//man
return 0;
}

例子2:进行数组化的结构体操作,切记字符串不能直接复制给数组,需要strcpy函数赋值。

#include <stdio.h>
#include <string.h>

struct person{
char name[20];
int age;
char sex[10];

};

int main(void)
{

struct person b[2];
b[0].age=20;
//b[0].name="canse";//错误 字符串不能直接给数组赋值,得用strcpy
// b[0].sex='w'; //错误,字符串不能直接给数组赋值,得用strcpy
strcpy( b[0].name,"canse");
strcpy( b[0].sex,"w");
printf("%s",b[0].name);//canse
printf("\\r\\n");
printf("%d",b[0].age);//20
printf("\\r\\n");
printf("%s",b[0].sex);//w
return 0;
}

3.结构体与函数

使用结构体作为函数的入参。

在这里插入图片描述

4.结构体与指针

使用指针访问结构体的成员:
实际上,是将结构体的地址赋值给指针,此时有别于结构的成员变量是.来引用或赋值,需要用箭头:->.
同时指针想指向结构体,那么指针类型必须是struct 结构体名称 *指针名=&初始化。
在这里插入图片描述

-> 的优先级高于 ,因此 zhizhen->x.high 先执行,它取出 y.x.high 的值(例如 88),这是一个 int 类型的数据。
然后 * 运算符试图对这个 int 值进行解引用,但 int 不是指针,不能解引用。这会导致编译错误(如 invalid type argument of unary '')。

#include <stdio.h>
#include <string.h>

struct people{
int high;
int scope;
};

//切记,子结构体,必须定义在前面。
struct person{
char name[20];
int age;
char sex[10];
struct people x;

};

int main(void)
{
//char *zhizhen; 不对,必须是struct类型指针才行

//struct people xiaomin={88,99};
struct person y={"ccc",19,"man",{88,99}};
struct person *zhizhen=&y;// 取了地址
printf("%d",zhizhen->x.high);// 切记,指针结构体不需要再加*引用
printf("\\r\\n");
printf("%d",zhizhen->age); // 19
return 0;
}

5.结构体的嵌套

在这里插入图片描述
在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » C语言快速入门10-结构体
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址