C语言的结构体是一种用户自定义的数据类型,用于存储不同类型的变量集合。结构体可以包含不同类型的数据成员,这些数据成员可以是基本数据类型(如整型、浮点型等),也可以是其他结构体类型。
结构体的定义通常放在函数外部,它包含一个或多个成员变量。结构体的定义可以如下所示:
struct 结构体名 {
数据类型 成员变量1;
数据类型 成员变量2;
// ...
};
结构体是把单一类型组合在一起:
结构体内的数据成员可以通过"."运算符访问。例如,假设有一个名为person
的结构体,其中包含名字和年龄两个成员变量,可以使用以下方式定义和访问结构体:
struct person {
char name[50];
int age;
};
int main() {
struct person p1;
strcpy(p1.name, "张三");
p1.age = 20;
printf("姓名:%s\n", p1.name);
printf("年龄:%d\n", p1.age);
return 0;
}
上述代码定义了一个person
结构体,然后定义了一个p1
变量,通过.
运算符访问了结构体的成员变量,最后输出了结果。
示例:
#include <stdio.h>
struct Student
{
// 成员
char name[20];
int age;
char sex[10];
char tele[12];
};
void print(struct Student* ps)
{ // 用指针打印结构体,*操作解引用
printf("%s %d %s %s \n", (*ps).name, (*ps).age, (*ps).sex, (*ps).tele);
// 结构体指针变量->成员名 通过地址指向成员
printf("%s %d %s %s \n", ps->name,ps->age,ps->sex,ps->tele);
}
int main()
{
// 初始化结构体
struct Student s = { "myname",20,"name","15703017885" };
// 结构体对象.成员名
printf("%s %d %s %s \n", s.name, s.age, s.sex, s.tele);
print(&s);
return 0;
}