国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言——結(jié)構(gòu)體類型(一)【結(jié)構(gòu)體定義,創(chuàng)建,初始化和引用】

這篇具有很好參考價值的文章主要介紹了C語言——結(jié)構(gòu)體類型(一)【結(jié)構(gòu)體定義,創(chuàng)建,初始化和引用】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??前言:
在實際編程過程中,我們可能會希望把一些關(guān)聯(lián)的數(shù)據(jù)存放在一起,這樣方便我們使用。但是這些數(shù)據(jù)的類型有時候并不一致,例如一個學(xué)生的信息:有名字(字符串),有年齡(整數(shù)),性別(字符)······這時候,我們就可以使用自定義類型——結(jié)構(gòu)體類型,將這些類型不一樣的關(guān)聯(lián)數(shù)據(jù)放在一個結(jié)構(gòu)體類型里面
這篇文章我們來講講結(jié)構(gòu)體類型
1,結(jié)構(gòu)體的定義
2,結(jié)構(gòu)體變量的創(chuàng)建與初始化
3,結(jié)構(gòu)體成員的引用

??個人簡介:努力學(xué)習(xí)ing
??個人專欄:C語言入門基礎(chǔ)
??CSDN主頁 愚潤求學(xué)
??每日雞湯:未來是怎么來的?未來不是等來的!


結(jié)構(gòu)體類型

一,結(jié)構(gòu)體類型的定義(聲明)

1,一般結(jié)構(gòu)體定義

C語言中結(jié)構(gòu)體類型的定義形式:
struct  結(jié)構(gòu)體名
{
     成員項表列
};
//在定義結(jié)構(gòu)體類型的時候,成員不需要初始化;當(dāng)我們創(chuàng)建了變量時,才需要對變量成員初始化

例如我們要定義一個【有名字(字符串),有年齡(整數(shù)),性別(字符)】的結(jié)構(gòu)體類型,名字叫stu:
定義形式如下????

struct stu
{
    char name[20];
    int age;
    char sex;
}

2,組合型結(jié)構(gòu)體定義

比如我們要在上面stu結(jié)構(gòu)體的基礎(chǔ)上補充一個出生日期(出生日期還要包括:年,月,日)
這個時候,我們就可以多定義一個能夠記錄出生日期的date結(jié)構(gòu)體類型,然后再在定義學(xué)生結(jié)構(gòu)體類型的時候,引用這個date結(jié)構(gòu)體
具體定義形式如下????

struct date
{
    int year;
    int month;
    int day;
};
struct stu
{
    char name[20];
    int age;
    char sex;
    struct date birthday;
};

注意:
在定義組合型的結(jié)構(gòu)體類型時,一定要遵守先定義后使用的原則。
例如:定義上面的stu結(jié)構(gòu)體時,成員birthday是一個結(jié)構(gòu)體變量,那我們就要保證birthday這個結(jié)構(gòu)體變量的結(jié)構(gòu)體類型在之前已經(jīng)先定義過了(在這里也就是date已經(jīng)先定義了)

二,結(jié)構(gòu)體變量的創(chuàng)建與初始化

1,變量的創(chuàng)建(定義)

(1)先定義結(jié)構(gòu)體類型,在創(chuàng)建結(jié)構(gòu)體變量
struct stu   /*定義學(xué)生結(jié)構(gòu)體類型*/
{
    char name[20];   /*姓名*/
    int age;        /*年齡*/
    char sex;      /*性別*/
};
struct stu s1,s2;   /*定義結(jié)構(gòu)體變量*/

利用這種定義形式,可以在程序的任何地方,在先定義后使用的原則下,定義屬于改結(jié)構(gòu)體類型的變量

(2)定義結(jié)構(gòu)體類型,同時創(chuàng)建結(jié)構(gòu)體變量
struct stu   /*定義學(xué)生結(jié)構(gòu)體類型*/
{
    char name[20];   /*姓名*/
    int age;        /*年齡*/
    char sex;      /*性別*/
}s1,s2;    /*同時定義結(jié)構(gòu)體變量*/

將變量直接定義在結(jié)構(gòu)體類型的后面,采用這樣的定義方式,在書寫上比較緊湊。但對要多處定義結(jié)構(gòu)體變量不方便

(3)通過定義無名結(jié)構(gòu)體類型來定義結(jié)構(gòu)體變量
struct     /*無結(jié)構(gòu)體名*/
{
    char name[20];   
    int age;        
    char sex;      
}s1,s2;    /*同時定義結(jié)構(gòu)體變量*/

但是,由于該定義方式無法記錄該結(jié)構(gòu)體的類型,所以,這種定義形式除了直接定義變量外,不能再定義該結(jié)構(gòu)體的其他變量。(這樣的定義,使程序的擴(kuò)展性受到很大限制,所以建議少用這種方式定義結(jié)構(gòu)體變量)

2,變量的初始化

struct stu   
{
    char name[20];   
    int age;        
    char sex;      //我們用B表示男,用G表示女
};

假如我們要創(chuàng)建兩個上面這種結(jié)構(gòu)體類型的變量,并初始化:

(1)按照結(jié)構(gòu)體順序初始化
struct stu s1 = {"zhangsan",20,'B'};
struct stu s2 = {"wangwu",18,'G'};
(2)按照指定的順序初始化

其實也就是用到了對結(jié)構(gòu)體成員的引用

struct stu s1 = {.age = 20, .name = "zhangsan", .sex = 'B'};
struct stu s2 = {.age = 18, .name = "wangwu", .sex = 'G'};

當(dāng)然,在定義結(jié)構(gòu)體類型的同時,創(chuàng)建的結(jié)構(gòu)體變量,也可以同時初始化

struct stu 
{
    char name[20];   
    int age;        
    char sex;    
}s1 = {"zhangsan",20,'B'};

三,結(jié)構(gòu)體成員的引用

對結(jié)構(gòu)體成員的引用我們需要使用到運算符“.”

使用格式:
結(jié)構(gòu)體類型變量名.成員名
如:s1.age

每使用一次.運算符,其實就是撥開了一層。
賦值時,我們需要找到最內(nèi)層的(能賦值的)成員
例如????

#include<stdio.h>
struct date
{
    int year;
    int month;
    int day;
};
struct stu
{
    char name[20];
    int age;
    char sex;
    struct date birthday;
};
int main()
{
    struct stu s1 = { "zhangsan",20,'B',{2005,1,1} };
    printf("%d\n", s1.age);
    printf("%d\n", s1.birthday.day);
}

這個程序里的結(jié)構(gòu)體類型stu是內(nèi)包含一個結(jié)構(gòu)體成員birthday的,所以當(dāng)我們要引用birthday里面的成員時,我們就需要再用一次.運算符:s1.birthday.day

運行結(jié)果:
C語言——結(jié)構(gòu)體類型(一)【結(jié)構(gòu)體定義,創(chuàng)建,初始化和引用】,C語言入門基礎(chǔ),c語言,java,開發(fā)語言,經(jīng)驗分享,筆記,學(xué)習(xí)方法


??我的分享也就到此結(jié)束啦??
要是我的分享也能對你的學(xué)習(xí)起到幫助,那簡直是太酷啦!
若有不足,還請大家多多指正,我們一起學(xué)習(xí)交流!
??公主,王子:點贊??→收藏?→關(guān)注??
感謝大家的觀看和支持!祝大家都能得償所愿,天天開心?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-777455.html

到了這里,關(guān)于C語言——結(jié)構(gòu)體類型(一)【結(jié)構(gòu)體定義,創(chuàng)建,初始化和引用】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包