结构体基础
结构体是一种构造数据类型,把不同类型的数据组合成一个整体——自定义数据类型。
//声明一个结构体类型
struct _Teacher // 1) 定义类型,用类型定义变量。
{
char name[32];
char tile[32];
int age;
char addr[128];
};
// 定义结构体变量的方法
struct _Student
{
char name[32];
char tile[32];
int age;
char addr[128];
}s3,s4; // 2) 定义类型的同时,定义变量。
// 定义结构体变量的方法
struct
{
char name[32];
char tile[32];
int age;
char addr[128];
}s3,s4; // 3) 直接定义结构体变量
初始化结构体变量的几种方法
// 1)
struct _Teacher t4 = {"name","tile2",2,"addr2"};
// 2)
struct Dog1
{
char name[32];
int age;
}d5 = {"dog",1};
// 3)
struct
{
char name[32];
int age;
}d6 = {"dog",32};
结构体变量的使用
int main()
{
//struct _Teacher t1,t2
//定义同时初始化
struct _Teacher t3 = {"name2","tile2",2,"addr2"};
printf("%s\n",t3.name);
//指针法和变量法操作结构体
struct _Teacher t4;
struct _Teacher *pTeacher = NULL;
pTeacher = &t4;
strcpy(t4.name,"wang");
strcpy(pTeacher->addr,"dddd");
printf("t4.name:%s\n",t4.name);
printf("t4.name:%s\n",pTeacher->name);
return 0;
}
结构体做函数参数以及结构体数组
#include <iostream>
struct _MyTeacher
{
char name[32];
int age;
};
void printfMyteach01(struct _MyTeacher t)
{
printf("t1.name:%s", t.name);
}
void printfMyteach02(struct _MyTeacher* t)
{
printf("\nt2->name:%s", t->name);
}
int main()
{
struct _MyTeacher t1 = {"Wang",18};
struct _MyTeacher t2 = { "Li",20 };
printfMyteach01(t1);
printfMyteach02(&t2);
}
// 定义结构体数组
int main()
{
int i = 0;
struct _MyTeacher teaArray[3];
struct _MyTeacher* tmp = NULL;
for (i = 0; i < 3; i++)
{
strcpy_s(teaArray[i].name,sizeof(teaArray[i].name), "aaaaa ");
//printf("%s", teaArray[i].name);
tmp = &teaArray[i];
printf("%s", tmp->name);
}
getchar();
return 0;
}