结构体三种表达方法,这个最好用。
结构体变量weapon_1通过第12行语句定义,可以通过第13行的.运算符获得相关的值。
第15行定义weapon_2数组,有两个元素,每个元素都有结构体里定义的三种属性。(可以将每个成员的3个属性分别用{}括起来,方便看)
16行展示了如何调用结构数组中每个成员的各种属性。
结构体 引用: . 成员预算符,优先级最高
如何对结构体进行初始化和访问结构体成员:
1、初始化 在花括号内 对结构体内变量成员依次赋值即可
struct weapon weapon_1 = {"w_name",100,200};
2、访问结构体成员:使用运算符.
:weapon_1.name,weapon_1.price//根据初始化的内容,=200
3、结构体数组,数组元素是结构体 struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200}; 或struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}};
如何对结构体进行初始化和访问结构体成员:
1、初始化 在花括号内 对结构体内变量成员依次赋值即可
struct weapon weapon_1 = {"w_name",100,200};
2、访问结构体成员:使用运算符.
:weapon_1.name,weapon_1.price//根据初始化的内容,=200
结构体数组:struct weapon weapon_2[2];
初始化就依次就好了:
初始化结构体:
struct [结构体名称] [变量名] ={...,...,...,...};
访问结构体成员:
[结构体变量名].[结构体成员名]
结构体数组:
struct [结构体名] [数组名] [num] ={...};
eg.struct weapon weapon[2]={{"a",50,100},{"b",100,200}};
printf("%d",weapon[0].atk);
如何访问结构体成员:
//数组,攻击力,价值
struct mk14 mk15 = {"mk14_name",100,200};
//访问结构体第一个变量
printf("%s\n",mk15.name);
//如果要对结构体进行运算,需要写完整 --》 mk15.atk++
如何定义一个结构体数组
结构体可以重复使用
//同一个结构体定义两种不同的变量,如同都是武器,都是武器不同,其他参数就不同
struct mk14 mk16[2] = { {"mk15_name",500,1000}, {"mk16_name",555,1111} };
//第一个武器 第二个武器
printf("%s\n,%d\n", mk16[0].name, mk16[1].atk);
结构体中的成员变量表示方法:结构体变量名.成员变量名。
结构体数组每一个元素都是一个结构体类型。
struct weapon{ char name[20]; int atk; int price; } struct weapon weapin_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}}; 结构体数初始化赋值都要一一对齐。
结构体声明与定义:
struct weapon{
char name[20];
int atk;
int price;
}weapon_1;
结构体初始化:
struct weapon weapon_1 = {"weapon_name",100,200 };
结构体变量访问使用”.“运算符,该运算符具有最高的优先级。
初始化结构体
struct weapon weapon_1={"weapon_name",100,200};
访问结构体成员,具有所有变量的操作
weapon_1.name
++weapon_1.price
结构体数组
int a[2]={1,2}
struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200}
struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}}
weapon_2[0].name
weapon_2[1].price
结构体的初始化和引用:
******************
#include <stdio.h>
struct weapon{
char name[20];
int atk;
int price;
};
int main(){
struct weapon weapon_1={"weapon_name",100,200};
printf("%s\n,%d\n",weapon_1.name,weapon_1.price);
int a[2];
struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200};
// struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}};
printf("%s\n,%d\n",weapon_2[0].name,weapon_2[1].atk);
return 0;
}
*******************
weapon_1.name:成员变量
34行:初始化一个武器结构体对象
35行:访问这个结构体对象中某一个成员的值(使用“.”运算符)
.运算符在所有运算符中优先级最高
36、37行分别为:定义普通数组和结构体数组
38行:输出的写法(当普通变量用就好了)
.为成员运算符,优先级最高
#include <stdio.h>
typedef
struct
weapon{
// 这个地方这么定义
char
*name;
int
atk;
int
price;
}weapon_t;
int
main()
{
weapon_t weapon1;
weapon1.name=
"tom"
;
weapon1.atk = 100;
weapon1.price = 200;
printf
(
"%s %d %d\n"
,weapon1.name,weapon1.atk,weapon1.price);
return
0;
}
结构体初始化:struct weapon weapon_1={"weapon_name,100,200};
调用:printf("%s\n",weapon_1.name);
结构体数组:
struct weapon weapon_1[2]={
{"weapon_name1",50,100}, {"weapon_name2",100,200} };
调用:weapon_1[0].name; weapon_1[1].atk;
结构体使用
结构体使用