1.宣言と定義された構造
構造:変数データの異なる種類のコレクション。
(最も一般的に使用される)最初の定義方法:
#include<stdio.h>
struct weapon{
char name[20];
int atk;
int price;
};//一定别忘了这个冒号;
int main{
struct weapon weapon_1={"weapon_name",100,200};
return 0;
}
第二は以下のように定義されています。
#include<stdio.h>
struct weapon{
char name[20];
int atk;
int price;
}weapon_1; //相当于定义了一个全局变量,变量的类型是struct weapon,变量的名称是weapon_1;
int main{
return 0;
}
この構造が明確に書かれていない、メンテナンスプログラムを助長されていません。
第三の定義方法:
struct{
char name[20];
int atk;
int price;
}waapon_1;
このような書き込みは、他の構造体変数名を定義することはできません。
2.初期化構造および参照
初期設定ではと一般的な構造を引用しました:
struct weapon weapon_1={"weapon_name",100,200};
printf("%s\n%d\n",weapon_1.name,++weapon_1.price);
構造および参照の配列を初期化します。
struct weapon weapon_2[2]={{"weapon_name1",100,50},{"weapon_name2",100,200}};//里面的花括号也可以不加;
printf("%s\n%d\n",weapon_2[0].name,weapon_2[1].atk);
3.構造体ポインタ
変数のポインタを構造:
struct weapon* w;
w=&weapon_1;
printf("name =%s\nname =%s\n",(*w).name,w->name);//same result;
構造体へのポインタの配列変数:
struct weapon* p;
p = weapon_2;
printf("%s\n",p->name);
p++;// equal weapon_2 +1 指向weapon_2[1];
printf("%s\n",p->name);