溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

c語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序運(yùn)行期間的所有成員存儲(chǔ)在哪

發(fā)布時(shí)間:2021-02-01 09:59:40 來(lái)源:億速云 閱讀:979 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹c語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序運(yùn)行期間的所有成員存儲(chǔ)在哪,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

c語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序運(yùn)行期間,所有的成員一直駐留在內(nèi)存中。原因:結(jié)構(gòu)體類(lèi)型的變量在程序運(yùn)行期間要作為一個(gè)整體占用連續(xù)的內(nèi)存單元。

c語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序運(yùn)行期間,所有的成員一直駐留在內(nèi)存中。

C語(yǔ)言 結(jié)構(gòu)體(Struct)

在C語(yǔ)言中,可以使用結(jié)構(gòu)體(Struct)來(lái)存放一組不同類(lèi)型的數(shù)據(jù)。結(jié)構(gòu)體的定義形式為:

struct 結(jié)構(gòu)體名{
    結(jié)構(gòu)體所包含的變量或數(shù)組
};

結(jié)構(gòu)體是一種集合,它里面包含了多個(gè)變量或數(shù)組,它們的類(lèi)型可以相同,也可以不同,每個(gè)這樣的變量或數(shù)組都稱(chēng)為結(jié)構(gòu)體的成員(Member)。請(qǐng)看下面的一個(gè)例子:

struct stu{
    char *name;  //姓名
    int num;  //學(xué)號(hào)
    int age;  //年齡
    char group;  //所在學(xué)習(xí)小組
    float score;  //成績(jī)
};

stu 為結(jié)構(gòu)體名,它包含了 5 個(gè)成員,分別是 name、num、age、group、score。結(jié)構(gòu)體成員的定義方式與變量和數(shù)組的定義方式相同,只是不能初始化。

注意大括號(hào)后面的分號(hào);不能少,這是一條完整的語(yǔ)句。

結(jié)構(gòu)體也是一種數(shù)據(jù)類(lèi)型,它由程序員自己定義,可以包含多個(gè)其他類(lèi)型的數(shù)據(jù)。(如c語(yǔ)言相關(guān)的基礎(chǔ)知識(shí),可以參考:《c語(yǔ)言教程視頻》)

像 int、float、char 等是由C語(yǔ)言本身提供的數(shù)據(jù)類(lèi)型,不能再進(jìn)行分拆,我們稱(chēng)之為基本數(shù)據(jù)類(lèi)型;而結(jié)構(gòu)體可以包含多個(gè)基本類(lèi)型的數(shù)據(jù),也可以包含其他的結(jié)構(gòu)體,我們將它稱(chēng)為復(fù)雜數(shù)據(jù)類(lèi)型或構(gòu)造數(shù)據(jù)類(lèi)型。

結(jié)構(gòu)體變量

既然結(jié)構(gòu)體是一種數(shù)據(jù)類(lèi)型,那么就可以用它來(lái)定義變量。例如:

struct stu stu1, stu2;

定義了兩個(gè)變量 stu1 和 stu2,它們都是 stu 類(lèi)型,都由 5 個(gè)成員組成。注意關(guān)鍵字struct不能少。

stu 就像一個(gè)“模板”,定義出來(lái)的變量都具有相同的性質(zhì)。也可以將結(jié)構(gòu)體比作“圖紙”,將結(jié)構(gòu)體變量比作“零件”,根據(jù)同一張圖紙生產(chǎn)出來(lái)的零件的特性都是一樣的。結(jié)構(gòu)體類(lèi)型的變量在程序運(yùn)行期間要作為一個(gè)整體占用連續(xù)的內(nèi)存單元。

你也可以在定義結(jié)構(gòu)體的同時(shí)定義結(jié)構(gòu)體變量:

struct stu{
    char *name;  //姓名
    int num;  //學(xué)號(hào)
    int age;  //年齡
    char group;  //所在學(xué)習(xí)小組
    float score;  //成績(jī)
} stu1, stu2;

將變量放在結(jié)構(gòu)體定義的最后即可。

以上是“c語(yǔ)言結(jié)構(gòu)體類(lèi)型變量在程序運(yùn)行期間的所有成員存儲(chǔ)在哪”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI