struct定义方式:
1. 定义类型 struct xx {};
2. 定义类型并声明一个全局变量 struct xx {} xx_1;
3. 定义一个结构体 struct {} xx_1;
结构体struct 是不同类型变量的集合,struct+结构体类型名称+{类型+变量1;类型+变量2......};
三种写法:1、struct +结构体类型名称+{类型+变量1;类型+变量2......};再在主函数中引用 struct +结构体类型名称+结构体名称;eg:struct weapon{char name[20];int atk ;}; struct weapon weapon_1;
2、直接在声明时定义,eg:struct weapon{char name[20];int atk ;} weapon_1;//大型程序中不便于维护
3、不指定结构体类型名称,但只能定义一种结构体。
结构体:
写在 main()函数之前
结构体是不同类型变量的集合(与数组很不同)
例子:
写一个武器的结构体类型
首先使用关键字struct
struct weapon{
char name[20];
int atk;
int price;
};
在int main(){中使用这个数据类型
struct weapon 变量名;
如果要使用结构体数据类型作为全局变量,可在写struct的时候在}后写变量名然后;。
比如:
struct weapon{
char name[20];
int atk;
int price;
}weapon1;
结构体:不同数据类型变量的集合
数组:相同数据类型变量的集合
声明结构体:
eg.
struct weapon{
char name[20];
int atk;
int price;
};
定义结构体变量:
第一种:struct [名称] [变量名];
第二种:在声明时定义:eg.
struct weapon{
char name[20];
int atk;
int price;
}weapon;//全局变量
第三种:eg.
struct {//没有名称,此后不能再定义
char name[20];
int atk;
int price;
}weapon;
3-1
结构体 stcuct 不同变量的集合
//定义一种变量:里面可有多种变量的定义
结构体名字的三种定义:
1:在函数里面定义
struct mk14{ //定义一个武器变量
char name[20]; //武器名字
int atk; //攻击力
int price; //武器价值
}
int main(){
int a;
float b;
struct mk14 awm;
return 0;
}
2:在结构体后面定义名字,类似如 typedef
struct mk14{ //定义一个武器变量
char name[20]; //武器名字
int atk; //攻击力
int price; //武器价值
}awm;
int main(){
int a;
float b;
return 0;
}
3:去掉结构体名字,但是这样就不能在次定义名字了。
struct { //定义一个武器变量
char name[20]; //武器名字
int atk; //攻击力
int price; //武器价值
}awm;
int main(){
int a;
float b;
return 0;
}
struct xxx{
};//struct xxx是一个类型的名字,像是int
定义和声明分离:struct xxx{
};
struct xxx elephant;
定义和声明一体:struct xxx{
}elephant;
结构体名和结构体变量名一致(只能定义一次):
struct{
}elephant;
变量先申明后定义,定义和申明可以放在一起,可以分离。
struct 是不同变量类型的集合
数组是相同变量类型的集合
struct weapon{
char name[20];
int atk;
int price;
};
struct weapon weapon_1;
struct weapon{
char name[20];
int atk;
int price;
}weapon_1;//全局变量
struct {
char name[20];
int atk;
int price;
}weapon_1;//全局变量
结构体的定义和声明:
******************
#include <stdio.h>
struct weapon{
char name[20];
int atk;
int price;
}weapon_1;
int main(){
struct weapon weapon_1;
return 0;
}
******************
结构体是不同类型变量的集合
数组是相同类型变量的集合
struct weapon :结构体类型的名字
weapon_1:结构体变量的名字
第一个{}里面:各个成员
“}weapon_1;”和“struct weapon weapon_1;”等价(一般两种定义方法)
13行-使用类型的名字去定义:声明和定义分离的形式(最常用)
11行-直接在声明的时候去定义(程序不便于维护)
结构体:与数组相反,存储的是一组不同类型的数据,如一把枪;
struct weapon{
char name[20];
int atk;
int price;
}; //这里只是定义,没有赋值,所以没有分配空间
声明:struct weapon(只定义一个变量时可以省略){ char name[20]; int atk; int price; }weapon_1; //这样就只有一个变量了 或者:struct weapon weapon_1;
结构体类型:struct 名称{
int 名称;
char 名称;
......
};
声明方法:1、struct 名称 变量名;
2、声明的时候去定义(适合小程序编写,大程序编写显得不够精细):
struct 名称{
int 名称;
char 名称;
......
}变量名;
3、不指定结构体的名称(只能定义一种结构体类型):
struct{
int 名称;
char 名称;
......
}变量名;