struct part {?? //此處part 指的是結(jié)構(gòu)體標(biāo)記
int value;????????
char name [20]??????????????//結(jié)構(gòu)體成員
int paice ;
} part1 ;??//創(chuàng)建了結(jié)構(gòu)體標(biāo)記part之后?? part1 是在申明變量;
申明變量的另外一種方式:
struct? part part1民鼓,part2;
//結(jié)構(gòu)體初始化及其引用;
main(){
struct part part1 = {?5,"? jiahina? "? ,??66 };//初始化
訪(fǎng)問(wèn):part1.name;
printf("%c",part1.name);
int[];
struct? part? part1_2? [2]? ={{5," jiahina " , 66 }.{5蛇尚," jiahina " , 67 }};?? //? 結(jié)構(gòu)體數(shù)組
printf("%s,%d",part1_2 [0].name? ,? part1_2 [1]. price);
}
指向結(jié)構(gòu)體的指針變量
struct part *w;
w = &part1;
printf("name = %s\n",(*p).name);
指向結(jié)構(gòu)體數(shù)組的指針
struct part?*p ;
p = part1_2;指向第一個(gè)數(shù)組元素;
p++ ; // 等價(jià)于
鏈表
數(shù)據(jù)+ 下一個(gè)節(jié)點(diǎn)的地址
靜態(tài)鏈表:
struct? part {
int price ;
int atk;
struct part *next;
};
int main{
//定義三個(gè)part的結(jié)構(gòu)體變量顾画,作為鏈表的節(jié)點(diǎn)取劫;還需要一個(gè)頭指針head
struct part a , b , c , *head;
a.price = 5;
a.atk = 1;
b.price = 5;
b.atk = 1;
c.price = 5;
c.atk = 1;
//將節(jié)點(diǎn)連成鏈表
head?=?&a;
a.next = &b;
b.next = &c;
c.next = NULL;
struct part *p;
p = head ;
while (p != NULL){
printf("%d\n",p.price);
p = p ->next;
動(dòng)態(tài)鏈表(單向);
//需要?jiǎng)?chuàng)建鏈表的函數(shù)研侣,函數(shù)的返回值是鏈表的頭指針谱邪;? 返回值需要定義成* 類(lèi)型;
struct part {
int price ;
int? atk;
}
struct? part *creat(){
struct part *head;
struct part? *p1 ,*p2;//一個(gè)數(shù)用來(lái)保存當(dāng)前的一個(gè)用來(lái)保存當(dāng)前之前的一個(gè)節(jié)點(diǎn)庶诡;
p1 = p2 = (struct part *)malloc (sizeof( struct part));
scanf("%d%d",p1->price;p1->atk);
head = NULL;
while(p -> price != 0){
if(n = = 1){
head = p1;
}
p2 -> next = p1;
p1 = p1->next;
p1 = (struct part?*)malloc(sizeof(struct part ));
scanf("%d%d",p1->price;p1->atk);
}
int main ()
{
creat();
printf("%d,%d",)
}