日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 嵌入式學(xué)習(xí)筆記:c語言結(jié)構(gòu)體的定義和使用

嵌入式學(xué)習(xí)筆記:c語言結(jié)構(gòu)體的定義和使用 時(shí)間:2018-09-06      來源:未知

c高級結(jié)構(gòu)體如何來學(xué)習(xí),這里分享一些學(xué)習(xí)筆記,可以輕松學(xué)c高級結(jié)構(gòu)體。

【1】結(jié)構(gòu)體數(shù)組

(1)結(jié)構(gòu)體數(shù)組的定義

1)具有相同結(jié)構(gòu)體類型的結(jié)構(gòu)體變量也可以組成數(shù)組,稱它們?yōu)榻Y(jié)構(gòu)體數(shù)組。

結(jié)構(gòu)體數(shù)組的每一個(gè)數(shù)組元素都是結(jié)構(gòu)體類型的數(shù)據(jù),它們都分別包括各個(gè)成員(分量)項(xiàng)。

2)定義結(jié)構(gòu)體數(shù)組的方法和定義結(jié)構(gòu)體變量的方法相仿,只需說明其為數(shù)組即可。

可以采用三種方法:

a. 先定義結(jié)構(gòu)體類型,再用它定義結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的定義形式如下:

struct 結(jié)構(gòu)體名

{

成員表列;

};

struct 結(jié)構(gòu)體名

例如:

struct student

{

char name[20];

char sex;

int age;

char addr[20];

};

struct student stu[3];

b. 在定義結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的定義形式如下:

struct 結(jié)構(gòu)體名

{

成員表列;

}數(shù)組名[元素個(gè)數(shù)];

例如:

struct student

{

char name[20];

char sex;

int age;

char addr[20];

}stu[3];

c. 直接定義結(jié)構(gòu)體數(shù)組

結(jié)構(gòu)體數(shù)組的定義形式如下:

struct //沒有結(jié)構(gòu)體名

{

成員表列;

}數(shù)組名[元素個(gè)數(shù)];

例如:

struct

{

char name[20];

char sex;

int age;

char addr[20];

}stu[3];

(2)結(jié)構(gòu)體數(shù)組的初始化

結(jié)構(gòu)體數(shù)組在定義的同時(shí)也可以進(jìn)行初始化,并且與結(jié)構(gòu)體變量的初始化規(guī)定相

同,

只能對全局的或靜態(tài)存儲(chǔ)類別的結(jié)構(gòu)體數(shù)組初始化。

結(jié)構(gòu)體數(shù)組初始化的一般形式是:

struct 結(jié)構(gòu)體名

{

成員列表;

};

struct 結(jié)構(gòu)體名 數(shù)組名[元素個(gè)數(shù)]={初始數(shù)據(jù)表};或者:

struct 結(jié)構(gòu)體名

{

成員表列;

}數(shù)組名[元素個(gè)數(shù)]={初始數(shù)據(jù)表};

由于結(jié)構(gòu)體變量是由若干不同類型的數(shù)據(jù)組成,而結(jié)構(gòu)體數(shù)組又是由若干結(jié)構(gòu)體變量組成。

所以要特別注意包圍在大括號中的初始數(shù)據(jù)的順序,以及它們與各個(gè)成員項(xiàng)間的對應(yīng)關(guān)系。

(3)結(jié)構(gòu)體數(shù)組的使用

一個(gè)結(jié)構(gòu)體數(shù)組的元素相當(dāng)于一個(gè)結(jié)構(gòu)體變量,因此前面介紹的有關(guān)結(jié)構(gòu)體變量的規(guī)則也適應(yīng)于結(jié)構(gòu)體數(shù)組元素。

以上面定義的結(jié)構(gòu)體數(shù)組 stu[3]為例說明對結(jié)構(gòu)體數(shù)組的引用:

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

若要引用數(shù)組第二個(gè)元素的 name 成員,則可寫為:

stu[1].name

2)可以將一個(gè)結(jié)構(gòu)體數(shù)組元素值賦給同一結(jié)構(gòu)體類型的數(shù)組中的另一個(gè)元素,或賦給同一類型的變量。

如:

struct student stu[3],student1;

現(xiàn)在定義了一個(gè)結(jié)構(gòu)體類型的數(shù)組,它有 3 個(gè)元素,又定義了一個(gè)結(jié)構(gòu)體類型變量student1,則下面的賦值是合法的。

student1=stu[0];

stu[0]=stu[1];

stu[1]=student1;

3)不能把結(jié)構(gòu)體數(shù)組元素作為一個(gè)整體直接進(jìn)行輸入輸出。如:

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

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

都是錯(cuò)誤的。

只能以單個(gè)成員為對象進(jìn)行輸入輸出,如:

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

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

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

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

(4)結(jié)構(gòu)體指針

可以設(shè)定一個(gè)指針變量用來指向一個(gè)結(jié)構(gòu)體變量。此時(shí)該指針變量的值是結(jié)構(gòu)體變量的起始地址,該指針稱為結(jié)構(gòu)體指針。

結(jié)構(gòu)體指針與前面介紹的各種指針變量在特性和方法上是相同的。與前述相同,在程序中結(jié)構(gòu)體指針也是通過訪問目標(biāo)運(yùn)算“*”訪問它的對象。

結(jié)構(gòu)體指針在程序中的一般定義形式為:

struct 結(jié)構(gòu)體名 *結(jié)構(gòu)指針名;

其中的結(jié)構(gòu)體名必須是已經(jīng)定義過的結(jié)構(gòu)體類型。

例如,

對于上一節(jié)中定義的結(jié)構(gòu)體類型 struct student,

可以說明使用這種結(jié)構(gòu)體類型的結(jié)構(gòu)指針如下:

struct student *pstu;

其中 pstu 是指向 struct student 結(jié)構(gòu)體類型的指針。結(jié)構(gòu)體指針的說明規(guī)定了它的數(shù)據(jù)特性,并為結(jié)構(gòu)體指針本身分配了一定的內(nèi)存空間。

但是指針的內(nèi)容尚未確定,即它指向隨機(jī)的對象。

當(dāng)表示指針變量 p 所指向的結(jié)構(gòu)體變量中的成員時(shí),“(*結(jié)構(gòu)體指針名).成員名”這種表示形式總是需要使用圓括號,顯得很不簡煉。

因此,對于結(jié)構(gòu)體指針指向的結(jié)構(gòu)體成員項(xiàng),給出了另外一種簡潔的表示方法,如下表

示:

結(jié)構(gòu)體指針名->成員名

它與前一種表示方法在意義上是完全等價(jià)的。

例如,結(jié)構(gòu)體指針 p 指向的結(jié)構(gòu)體變量中的成員 name 可以表示如下:

(*p).name 或 p->name

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

下一篇:嵌入式學(xué)習(xí)筆記:c語言共用體和結(jié)構(gòu)體的區(qū)別

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 故都的秋ppt| 风之谷钢琴谱| 学前教育科研方法的论文| 尹雪喜演的全部电影| 老阿姨电视剧在线观看| 林戈| 陷入纯情| 新手驾到综艺免费观看完整版| 我和我的祖国钢琴谱完整版| 奇米7777欧美日韩免费视频| 诗歌繁星| 马修·麦克费登| 那年秋天| 打美女屁股免费| 小娘惹第二部电视剧免费观看| 1987年美国电影| 中国人免费观看| 苹果恋爱多| 天猫店铺运营| 电影善良的妻子| 江南好简谱| 欧美xxxx做受性欧美蜜臀av| 康瑞德家的男孩| cctv5+体育赛事直播时间| 蓝眼泪简谱| 二年级写玩具的作文| 北1| 小虎队《爱》歌词| 真实游戏电影无删减完整版| 邵雨薇为艺术贡献的电影有哪些| 杨文元| 梁君诺| 艾娜| 23号牛乃唐第一季电视剧免费观看| 花落花开电影| 荒岛女儿国| 刘慧茹| 91精品在线视频播放| 辘轳女人和井全26集| 好好说话电视剧免费观看完整版40集 | 果戈里起点女的被劫走是多少分钟|