结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。
定义结构体类型变量
基本形式格式:
struct 结构体名{
成员表列;
} 变量表列;
具体有四种方式 :
- 1、定义结构体的同时定义变量:
struct Student{
char name[10];
int age;
} stu;
- 2、先定义结构体,后再定义变量:
struct Student{
char name[10];
int age;
};
struct Student stu;
- 3、先定义结构体,再定义结构体别名,再用别名定义变量:
typedef struct {
char name[10];
int age;
} Student;
Student stu;
- 4、匿名共用体,只使用一次
struct {
char name[10];
int age;
} stu;
初始化成员列表
- 1、定义结构体的同时定义变量,并进行初始化变量:
struct Student{
char name[10];
int age;
} stu={"Tom",12};
- 2、先定义结构体,再定义变量,并初始化变量:
struct Student{
char name[10];
int age;
};
struct Student stu = {"Jhon",18};
- 3、先定义结构体,再定义结构体别名,再用别名定义变量,并初始化变量:
typedef struct {
char name[10];
int age;
}Student;
Student stu = {"Jhon",19};
- 4、匿名结构体,只使用一次,初始化变量:
struct {
char name[10];
int age;
}stu = {"Jho",16};
访问结构体变量
strcpy(stu.name,"Tom Jhon");
stu.age = 12;
完整例子
#include <stdio.h>
#include <string.h>
struct Student{
char name[10];
int age;
}stu;
int main(int argc,char* argv){
strcpy(stu.name,"Tom Jhon");
stu.age = 12;
printf("name:%s\n",stu.name);
printf("name 大小(单位:byte):%ld\n",sizeof(stu.name));
printf("age:%d\n",stu.age);
printf("age大小(单位:byte):%ld\n",sizeof(stu.age));
printf("stu 大小(单位:byte):%ld\n",sizeof(stu));
return 0;
}
运行结果:
~/Desktop/c$ gcc main.c -o main
~/Desktop/c$ ./main
name:Tom Jhon
name 大小(单位:byte):10
age:12
age大小(单位:byte):4
stu 大小(单位:byte):16
谢谢阅读。