定义类型
struct Student
{
char name[64];
int age;
}s1,s2;//定义类型的同时定义变量
struct
{
char name[64];
int age;
}s5,s6;//匿名类型,定义变量
初始化
Teacher t1 = { "asad",21,01 };
struct Student2
{
char name[64];
int age;
}s8 = {"name",21};
struct
{
char name[64];
int age;
}s9 = {"dfsdf",23};
引用
"."操作符 是寻址
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
typedef struct Teacher
{
char name[100];
int age;
int id;
}Teacher;
void main()
{
Teacher t1;//告诉C编译器分配内存;
//引用
t1.age = 32;
printf("%s\n", t1.name);
strcpy(t1.name, "alfred");
printf("%d\n", t1.age);
system("pause");
return;
}
通过指针来操作 "->"等价于"."操作符
void main()
{
Teacher t2 = {"jack",32,02};
Teacher *p = NULL;
p = &t2;
printf("p->age:%d", p->age);
printf("p->name:%s",p->name);
system("pause");
return;
}
结构体元素 和结构体指针
void copyTeacher(Teacher to,Teacher from)
{
to = from;
}
这种方法是通过结构体元素 来交换
内存四区图 表明
内存四区图
#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
//定义一个结构体类型
typedef struct Teacher
{
char name[100];
int age;
int id;
}Teacher;
//结构体元素 和结构体指针
void copyTeacher(Teacher *to,Teacher *from)
{
*to = *from;
}
void main()
{
Teacher t2 = { "jack",32,02 };
Teacher t3;
Teacher t4;
t3 = t2;
printf("t3.name%s\n",t3.name);
printf("copyTeacher后:\n");
copyTeacher(&t4, &t2);
printf("t4.name%s\n", t4.name);
system("pause");
return;
}