久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌入(ru)式學習筆記:c語言(yan)結構體的定義和使用

嵌(qian)入式學習筆記:c語言(yan)結(jie)構體的定義和使用 時間:2018-09-06    ;  來源:未知(zhi)

c高(gao)級結(jie)構體如何來學習,這里分享(xiang)一些學習筆(bi)記(ji),可以輕松學c高(gao)級結(jie)構體。

【1】結構體數組

(1)結構(gou)體數組(zu)的定義

1)具有相同(tong)結構(gou)體(ti)(ti)(ti)類型的結構(gou)體(ti)(ti)(ti)變量也(ye)可以組(zu)(zu)成數(shu)組(zu)(zu),稱(cheng)它們(men)為結構(gou)體(ti)(ti)(ti)數(shu)組(zu)(zu)。

結(jie)構體數(shu)組(zu)的(de)每(mei)一個(ge)數(shu)組(zu)元素都是結(jie)構體類型(xing)的(de)數(shu)據,它們都分別包括(kuo)各個(ge)成員(分量(liang))項(xiang)。

2)定義結構(gou)體(ti)(ti)數(shu)組的(de)方法和定義結構(gou)體(ti)(ti)變(bian)量的(de)方法相(xiang)仿,只需說明其為數(shu)組即可。

可以采用三(san)種方法:

a. 先定(ding)義(yi)結構體類(lei)型,再用(yong)它定(ding)義(yi)結構體數(shu)組。結構體數(shu)組的定(ding)義(yi)形(xing)式如下:

struct 結(jie)構(gou)體名(ming)

{

成員表列;

};

struct 結構體名

例如:

struct student

{

char name[20];

char sex;

int age;

char addr[20];

};

struct student stu[3];

b. 在定義結(jie)構體(ti)類型同時定義結(jie)構體(ti)數(shu)組(zu)。結(jie)構體(ti)數(shu)組(zu)的定義形式如下:

struct 結構(gou)體名

{

成員表列;

}數組名[元素個數];

例如:

struct student

{

char name[20];

char sex;

int age;

char addr[20];

}stu[3];

c. 直接(jie)定義結構體數組

結構體數組的定(ding)義形(xing)式如下:

struct //沒有結構體名

{

成員表列;

}數組名[元素個數];

例如:

struct

{

char name[20];

char sex;

int age;

char addr[20];

}stu[3];

(2)結構體數組的初始化

結(jie)構(gou)體數組在定(ding)義的(de)同(tong)時也(ye)可以(yi)進(jin)行初始(shi)化,并(bing)且與結(jie)構(gou)體變量的(de)初始(shi)化規定(ding)相

同,

只(zhi)能對(dui)全局(ju)的或靜態存儲類別的結構(gou)體(ti)數組初始化。

結構體數組初始化的一般形(xing)式(shi)是(shi):

struct 結構體名

{

成員列表;

};

struct 結構體名(ming) 數組(zu)名(ming)[元(yuan)素(su)個(ge)數]={初始數據表};或者:

struct 結構體名

{

成員表列;

}數(shu)組名[元(yuan)素(su)個數(shu)]={初始數(shu)據表};

由(you)于結(jie)構體變量(liang)是由(you)若干(gan)不同(tong)類型的數據組(zu)(zu)(zu)成(cheng),而結(jie)構體數組(zu)(zu)(zu)又是由(you)若干(gan)結(jie)構體變量(liang)組(zu)(zu)(zu)成(cheng)。

所以要特別注(zhu)意包圍在大括號(hao)中的(de)(de)初始數據的(de)(de)順序,以及(ji)它們與各個成員(yuan)項間的(de)(de)對(dui)應關系。

(3)結(jie)構體(ti)數組的使用

 一(yi)個結構體數(shu)組(zu)的元素相當(dang)于(yu)一(yi)個結構體變(bian)量(liang),因此前(qian)面介紹的有(you)關結構體變(bian)量(liang)的規則(ze)也適應于(yu)結構體數(shu)組(zu)元素。

以上面定(ding)義(yi)的(de)(de)結構(gou)體(ti)(ti)數組(zu) stu[3]為例說(shuo)明對結構(gou)體(ti)(ti)數組(zu)的(de)(de)引(yin)用:

1)引用某一元素中(zhong)的(de)成員。

 若要(yao)引(yin)用數(shu)組第(di)二個元素的 name 成(cheng)員,則可寫為:

stu[1].name

2)可(ke)以將(jiang)一(yi)個結構(gou)體(ti)數組(zu)元素(su)值賦(fu)給(gei)同(tong)一(yi)結構(gou)體(ti)類型的數組(zu)中的另一(yi)個元素(su),或賦(fu)給(gei)同(tong)一(yi)類型的變(bian)量。

如:

struct student stu[3],student1;

現在定(ding)義了(le)一個結構(gou)體類型的(de)(de)數組(zu),它有 3 個元素,又(you)定(ding)義了(le)一個結構(gou)體類型變量student1,則下面的(de)(de)賦值是合法(fa)的(de)(de)。

student1=stu[0];

stu[0]=stu[1];

stu[1]=student1;

3)不(bu)能把(ba)結構體數組元素作為一個整體直(zhi)接(jie)進行輸入輸出(chu)。如(ru):

printf(“…”,stu[0]);

scanf(“…”,&stu[0]);

都是錯誤的。

只能以(yi)單(dan)個(ge)成員為(wei)對象進行輸入輸出,如(ru):

scanf(“…”,stu[0].name);

scanf(“…”,&stu[1].num);

printf(“…”,stu[0].name);

printf(“…”,stu[1].num);

(4)結(jie)構體(ti)指針

可以設定一個(ge)指針(zhen)(zhen)(zhen)變量(liang)(liang)用來(lai)指向一個(ge)結(jie)(jie)構(gou)體(ti)變量(liang)(liang)。此(ci)時該(gai)指針(zhen)(zhen)(zhen)變量(liang)(liang)的值是結(jie)(jie)構(gou)體(ti)變量(liang)(liang)的起始地址(zhi),該(gai)指針(zhen)(zhen)(zhen)稱為結(jie)(jie)構(gou)體(ti)指針(zhen)(zhen)(zhen)。

結構(gou)體指(zhi)針(zhen)與前(qian)面介紹的各種(zhong)指(zhi)針(zhen)變量在(zai)特性和方法上是(shi)相同的。與前(qian)述相同,在(zai)程序中(zhong)結構(gou)體指(zhi)針(zhen)也(ye)是(shi)通過(guo)訪問目(mu)標運算(suan)“*”訪問它(ta)的對象。

結構體指針(zhen)在程序中(zhong)的一般定義(yi)形式為:

struct 結構體名(ming) *結構指針名(ming);

其(qi)中的結構體名必須是已經定義(yi)過(guo)的結構體類(lei)型。

例如,

對于上一(yi)節中定(ding)義的結構(gou)體類型 struct student,

可以說明使用這種結構體(ti)類型的結構指針如下:

struct student *pstu;

其中 pstu 是指向 struct student 結(jie)(jie)構體(ti)類型的(de)(de)指針(zhen)。結(jie)(jie)構體(ti)指針(zhen)的(de)(de)說明規定了它的(de)(de)數據特(te)性,并為(wei)結(jie)(jie)構體(ti)指針(zhen)本身(shen)分配(pei)了一定的(de)(de)內存空間。

但是指(zhi)針的(de)內容(rong)尚(shang)未確定,即(ji)它(ta)指(zhi)向隨機的(de)對象。

當表示指(zhi)針變(bian)量 p 所指(zhi)向的結構體變(bian)量中的成(cheng)(cheng)員時,“(*結構體指(zhi)針名).成(cheng)(cheng)員名”這(zhe)種表示形式總是需要使(shi)用圓(yuan)括號(hao),顯得很不簡煉。

因此(ci),對于(yu)結構體指(zhi)針指(zhi)向的(de)結構體成員項,給出了另外一種簡潔的(de)表(biao)示方法,如下表(biao)

示:

結構體指針名(ming)->成(cheng)員名(ming)

它與前一種表示(shi)方法在(zai)意義上是(shi)完(wan)全等價的(de)。

例(li)如,結構(gou)體指(zhi)(zhi)針 p 指(zhi)(zhi)向的(de)結構(gou)體變(bian)量中的(de)成員 name 可以表示如下:

(*p).name 或 p->name

上一篇:嵌入式學習筆記:c++文件操作由淺入深,讓你理解透徹

下一篇:嵌入式學習筆記:c語言共用體和結構體的區別

熱點(dian)文章推薦
華清學(xue)員就業榜(bang)單
高(gao)薪學(xue)員經(jing)驗分享(xiang)
熱點新聞(wen)推(tui)薦
前臺專線(xian):010-82525158 企(qi)業培(pei)訓洽談專線:010-82525379 院校合作(zuo)洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部