成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C語言的結(jié)構(gòu)體是什么呢-創(chuàng)新互聯(lián)

C語言的結(jié)構(gòu)體是什么呢,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、小程序開發(fā)、公眾號商城、等建站開發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

1、概述

C語言允許用戶自己指定這樣一種數(shù)據(jù)結(jié)構(gòu),它由不同類型的數(shù)據(jù)組合成一個整體,以便引用,這些組合在一個整體中的數(shù)據(jù)是互相聯(lián)系的,這樣的數(shù)據(jù)結(jié)構(gòu)稱為結(jié)構(gòu)體,它相當(dāng)于其它高級語言中記錄。

聲明一個結(jié)構(gòu)休類型的一般形式如下:

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

{成員列表};

結(jié)構(gòu)體名,用作結(jié)構(gòu)體類型的標(biāo)志,它又稱結(jié)構(gòu)體標(biāo)記,大括號內(nèi)是該結(jié)構(gòu)體中的各個成員,由它們組成一個結(jié)構(gòu)體,對各成員都應(yīng)進(jìn)行類型聲明如:

類型名成員名;

也可以成員列表稱為域表,第一個成員也稱為結(jié)構(gòu)體中的一個域。成員名定名規(guī)則寫變量名同。

structstudent

{

intnum;

charname[20];

charsex;

intage;

floatscore;

charaddr[30];

};

2、定義結(jié)構(gòu)體類型變量的方法

前面只是指定了一個結(jié)構(gòu)體類型,它相當(dāng)于一個模型,但其中并無具體數(shù)據(jù),系統(tǒng)對之也不分配實(shí)際內(nèi)存單元,為了能在程序中使用結(jié)構(gòu)類型的數(shù)據(jù),應(yīng)當(dāng)定義結(jié)構(gòu)體類型的變量,并在其中存放具體的數(shù)據(jù),可以采取以下3種方法定義結(jié)構(gòu)體類型變量。

(1)先聲明結(jié)構(gòu)體類型再定義變量名

如上面已定義了一個結(jié)構(gòu)體類型structstudent,可以用它來定義變量。如:

structstudent{//結(jié)構(gòu)體類型名

...

...

...

}student1,student2//結(jié)構(gòu)體變量名

定義了student1,student2為structstudent類型的變量。

在定義了結(jié)構(gòu)體變量后,系統(tǒng)會為之分配內(nèi)存單元。例如student1和student2在內(nèi)存中各占59個字節(jié)。

應(yīng)當(dāng)注意,將一個變量定義為標(biāo)準(zhǔn)類型(基本數(shù)據(jù)類型)與定義為結(jié)構(gòu)體類型不同之處在于后者不僅要求指定變量為結(jié)構(gòu)體類型,而且要求指定為某一特定的結(jié)構(gòu)體類型(例如structstudent類型),因?yàn)榭梢远x出許多種具體的結(jié)構(gòu)體類型。而在定義變量為整形時,只需指定為int型即可。

(2)在聲明類型的同時定義變量

例如:

structstudent

{

intnum;

charname[20];

charsex;

intage;

floatscore;

charaddr[30];

}student1,student2;

它的作用與第一種方法相同,即定義了兩個structstudent類型的變量student1,student2這種形式的定義的一般形式為

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

{

成員表列

}變量名表列;

(3)直接定義結(jié)構(gòu)類型變量

其一般形式為:

struct

{

成員表列

}變量名表列;

即不出現(xiàn)結(jié)構(gòu)體名。

關(guān)于結(jié)構(gòu)體類型,有幾點(diǎn)要說明:

a.類型與變量是不同的概念,不是混同,只能對變量賦值,存取或運(yùn)算,而不能對一個類型賦值,存取或運(yùn)算。在編譯時,對類型是不分配空間的,只對變量分配空間。

b.對結(jié)構(gòu)體中的成員(即域)可以單元使用,它的作用與地位相當(dāng)于普通變量。

c.成員也可以是一個結(jié)構(gòu)體變量。如:

structdate//聲明一個結(jié)構(gòu)體類型

{

intmonth;

intday;

intyear;

}

structstudent

{

intnum;

charname[20];

charsex;

intage;

structdatebirthday;

charaddr[30];

}student1,student2;

先聲明一個structdate類型,它代表日期包括3個成員month,day,year。然后在聲明structstudent類型時,將成員birthday指定為structdate類型。

d.成員名可以與程序中的變量名相同,二者不代表同一對象。

3、結(jié)構(gòu)體變量的引用

(1)不能將一個結(jié)構(gòu)體變量作為一個整體進(jìn)行輸入和輸出。

只能對結(jié)構(gòu)體變量中的各個成員分別進(jìn)行輸入輸出。引用結(jié)構(gòu)體變量中的成員的方式為:

結(jié)構(gòu)體變量名.成員名

例如student1.num表示student1變量中的num成員,即student1的num項,可以對變量的成員賦值。例如:student1.num=10010;

.是成員(分量)運(yùn)算符,它在所有的運(yùn)算符中優(yōu)先級高,因此可以把student1.num作為一個整體來看待。上面的賦值語句作用是將整數(shù)10010賦給student1變量中的成員num。

(2)如果成員本身又屬一個結(jié)構(gòu)體類型,則要用若干個成員運(yùn)算符,一級一級地找到最低一級的成員。只能對最低的成員進(jìn)行賦值或存取以及運(yùn)算。

例如:結(jié)構(gòu)體變量student1可以這樣訪問各成員:

student1.num

student1.birthday.month

注意,不能用student1.birthday來訪問student1變量中的成員birthday,因?yàn)閎irthday本身是一個結(jié)構(gòu)體變量。

(3)對結(jié)構(gòu)體變量的成員可以像普通變量一樣進(jìn)行各種運(yùn)算(根據(jù)其類型決定可以進(jìn)行的運(yùn)算)。

student2.score=student1.score;

sum=student1.score+student2.score;

student1.age++;

++student1.age;

由于.運(yùn)算符的優(yōu)先級高,因此student1.age++是對student1.age進(jìn)行自加運(yùn)算。而不是先對age進(jìn)行自加運(yùn)算。

(4)可以引用結(jié)構(gòu)體變量成員的地址。也可以引用結(jié)構(gòu)體變量的地址。如:

scanf("%d",&student1.num);//輸入student1.num的值

printf("%o",&student1);//輸出student1的首地址

但不能用以下語句整體讀入結(jié)構(gòu)體變量如:

scanf("%d,%s,%c,%d,%f,%s",&student1);

結(jié)構(gòu)體變量的地址主要用于作函數(shù)參數(shù),傳遞結(jié)構(gòu)體的地址。

4、結(jié)構(gòu)體變量的初始化

和其它類型變量一樣,對結(jié)構(gòu)體變量可以在定義時指定初始值。

實(shí)例

#include

structstudent

{

longintnum;

charname[20];

charsex;

charaddr[30];

}a={89031,"LiLin",'M',"123BeijingRoad"};

voidmain()

{

printf("NO.:%ld\nname:%s\nsex:%c\naddress:%s\n",a.num,a.name,a.sex,a.addr);

}

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。

網(wǎng)站欄目:C語言的結(jié)構(gòu)體是什么呢-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article20/djsico.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、App設(shè)計、網(wǎng)站設(shè)計公司、企業(yè)網(wǎng)站制作、全網(wǎng)營銷推廣定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
休宁县| 弥渡县| 冕宁县| 措美县| 眉山市| 汝州市| 穆棱市| 玉屏| 甘洛县| 德州市| 乃东县| 天台县| 陕西省| 古交市| 六枝特区| 诏安县| 永德县| 山西省| 岱山县| 湘潭县| 邵阳市| 竹山县| 罗源县| 临朐县| 桦川县| 综艺| 思南县| 绥阳县| 施秉县| 沈丘县| 开鲁县| 子长县| 漳州市| 鄯善县| 郸城县| 托克托县| 中卫市| 临桂县| 邮箱| 鹤峰县| 体育|