结构体
定义;一些不同类型元素的集合,也可以是相同类型
声明一个结构体
struct 结构体名
{
成员列表
};
结构体成员可以是 标量 数组 指针,其他结构体
struct sud
{
int age;
char name;
}p; //声明类型时定义全局变量p
struct sud p2; //定义局部变量p2
struct sud p3 ={20,“张三”}; 定义局部变量时赋值
结构体成员打印
“.” =点操作符
“->”=箭头操作符
#include <stdio.h>
struct sud //创建结构体
{
int age;
char name[20];
};
int main()
{
struct sud arr; //创建变量arr
arr = { 20,"张三" }; //给arr赋值
struct sud* p = &arr; //定义指针并赋值
printf("%d \n", arr.age); //用.符号打印
printf("%d \n", (*p).age); //指针用.符号打印
printf("%d \n", p->age); //指针用->符号打印 上下两种方式相等
}
运行结果
结构体传参
#include <stdio.h>
struct sud //创建结构体
{
int age;
char name[20];
};
void print1(struct sud arr) //传值打印
{
printf("%d %s\n", arr.age, arr.name);
}
void print2(struct sud *arr) //传址打印
{
printf("%d %s\n", arr->age, arr->name);
}
int main()
{
struct sud arr; //创建变量arr
arr = { 20,"张三" }; //给arr赋值
struct sud* p = &arr; //定义指针并赋值
print1(arr); //传值调用
print2(&arr); //传址调用
}
运行结果