把不同的数据类型整合起来成为一个自定义的数据类型
//尖括号代表系统类库,std表示标准,io表示输入输出 引入标准输入输出
#include<stdio.h>
//lib表示类库 引入标准类库
#include<stdlib.h>
struct Man{
char* name;
int age;
int (*func)();
};
void main(){
//初始化结构体的变量
//①声明的同时进行赋值
struct Man m = {"TOM",21};
//②先声明
struct Man m1 ;
//声明之后赋值
m1.age = 20;
m1.name = "JERRY";
printf("%s,%d\n",m1.name,m1.age);
getchar();
}
作用:控制结构体变量的个数,相当于单例
struct{
char name[10];
int age;
}m1,m2;
struct Teacher{
char name [10];
};
struct Student{
char name [20];
int age;
struct Teacher t;
};
void main(){
struct Student s = {"TOM",10,{"JERRY"}};
struct Student s1;
s1.age = 10;
strcpy(s1.t.name,"JERRY");
getchar();
};
struct Man {
char name[20];
int age;
};
void main (){
struct Man m1 = {"TOM",10};
struct Man *p = &m1;
printf("%s,%d\n",m1.name ,m1.age);
printf("%s,%d\n",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
printf("%s,%d\n",p -> name ,p -> age);
getchar();
};
struct Man {
char name[20];
int age;
};
void main (){
struct Man mans[] = {("TOM",10),("TOM",10)};
//遍历数组①
struct Man *p = mans;
for(;p<names +2;p++){
printf("%s,%d\n",p -> name ,p -> age);
}
②
int i = 0;
for(;i<2;i++){
printf("%s%d\n",mans[i].name,mans[i].age);
}
struct Man *p = &m1;
printf("%s,%d\n",m1.name ,m1.age);
printf("%s,%d\n",(*p).name ,(*p).age);
//"->"是"(*p)."的简写
printf("%s,%d\n",p -> name ,p -> age);
getchar();
};
必须是最宽基本数据类型的整数倍
struct Man{
int age;
double weight;
};
void main(){
struct Man m1 = {10,20.1};
printf("%d,%#x\n",sizeof(m1),&m1);
getchar();
}
但其实并不难
,今天就先写到这里明天进续写结构体
剩下的东西,欲速则不达,慢慢来不着急。