欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語(yǔ)言-結(jié)構(gòu)體-創(chuàng)新互聯(lián)

結(jié)構(gòu)體概念

由一個(gè)或多個(gè)基礎(chǔ)類(lèi)型組合出來(lái)的一個(gè)新的復(fù)合類(lèi)型。

創(chuàng)新互聯(lián)公司專(zhuān)注于月湖網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供月湖營(yíng)銷(xiāo)型網(wǎng)站建設(shè),月湖網(wǎng)站制作、月湖網(wǎng)頁(yè)設(shè)計(jì)、月湖網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造月湖網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供月湖網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。結(jié)構(gòu)體類(lèi)型的聲明
struct student_t{
    int sn;
    char name[32];
    int age;
};
結(jié)構(gòu)體變量的定義
struct student_t stu;

結(jié)構(gòu)體可以在全局聲明,也可以在某個(gè)函數(shù)內(nèi)部進(jìn)行聲明,但是局部聲明的類(lèi)型除了作用域就無(wú)法被訪問(wèn)。可以在聲明結(jié)構(gòu)體的同時(shí)定義變量。

typedef的作用

類(lèi)型定義,基于一個(gè)原始的類(lèi)型 ,定義出一個(gè)新的類(lèi)型。

基于struct student_t類(lèi)型定義了一個(gè)新的類(lèi)型Student,此時(shí)的Student是一個(gè)類(lèi)型。

typedef常用于復(fù)雜數(shù)據(jù)類(lèi)型的類(lèi)型定義,可以大大簡(jiǎn)化結(jié)構(gòu)體類(lèi)型名的使用。

結(jié)構(gòu)體數(shù)組的定義與使用
#include#includetypedef struct student_t{
    int sn;
    char name[32];
    int age;
}Student;

typedef struct student_t Stu;

int main()
{
    struct student_t stu = { 2, "小紅", 18 };
    Student stu1 = { 1, "小明", 18 };
    Stu stu2[]={
        { 1, "小明", 18 },
        { 2, "小紅", 19 },
        { 3, "小藍(lán)", 20 }
    };
    for (int i = 0; i< sizeof(stu2) / sizeof(stu2[0]); i++)
    {
        printf("學(xué)號(hào):%3d\t姓名:%6s\t年齡:%3d\n", stu2[i].sn, (*(stu2+i)).name, (stu2+i)->age);
    }
    
    struct student_t *pstu = &stu1;
    printf("學(xué)號(hào):%d\n", stu.sn);
    printf("姓名:%s\n", stu.name);
    printf("年齡:%d\n", stu.age);

    printf("學(xué)號(hào):%d\n", (*pstu).sn);
    printf("姓名:%s\n", pstu->name);
    printf("年齡:%d\n", pstu->age);
    system("pause");
    return 0;
}
結(jié)構(gòu)體的嵌套定義
#include#includetypedef struct student_t{
    int sn;
    char name[32];
    int age;
}Student;//Student是一個(gè)類(lèi)型
typedef struct class_t{
    int id;
    char name[32];
    int stu_count;
    struct student_t stu_arry[50];//嵌套定義struct student_t類(lèi)型
}Class;//Class是一個(gè)類(lèi)型
int main()
{
    Class class = { 1, "一年級(jí)一班", 2, { { 1, "小明", 18 }, { 2, "小紅", 19 } } };
    printf("%10s   %10s   %10s\n", "班級(jí)ID", "班級(jí)名稱(chēng)","班級(jí)數(shù)量");
    printf("%10d   %10s   %10d\n", class.id, class.name, class.stu_count);
    for (int i = 0; i< class.stu_count; i++)
    {
        printf("學(xué)號(hào):%3d\t姓名:%6s\t年齡:%3d\n", class.stu_arry[i].sn, class.stu_arry[i].name, class.stu_arry[i].age);
    }
    system("pause");
    return 0;
}
結(jié)構(gòu)體類(lèi)型的嵌套定義與使用 結(jié)構(gòu)體類(lèi)型的成員自引用

結(jié)構(gòu)體類(lèi)型成員的類(lèi)型是否可以是結(jié)構(gòu)體自身類(lèi)型?

stu成員定義時(shí),student_t類(lèi)型還沒(méi)有定義完畢,這時(shí)候的struct student_t還不是一個(gè)完整的類(lèi)型。

但是,定義結(jié)構(gòu)體自身類(lèi)型的指針是可以的。因?yàn)椋羔橆?lèi)型的成員變量大小固定,跟結(jié)構(gòu)體類(lèi)型是否定義完畢無(wú)關(guān)。

結(jié)構(gòu)體成員的存儲(chǔ)
struct student_t{
? ? int sn;//4字節(jié)空間
? ? char name[32];//32字節(jié)空間
}stu;

stu變量的存儲(chǔ):結(jié)構(gòu)體中每一個(gè)成員變量都要占空間,成員變量的名稱(chēng)就代表了一整塊空間中的某個(gè)子塊。

stu.sn=1;
strcpy(stu.name,"hello");//字符串的賦值
結(jié)構(gòu)體變量的傳參
#include#include#includestruct studen_t{
    int sn;
    char name[32];
};
void func1(struct studen_t stu)
{
    printf("%d---%s\n", stu.sn, stu.name);
}
void func2(struct studen_t *pstu)
{
    pstu->sn = 2;
    strcpy(pstu->name, "小紅");//結(jié)構(gòu)體中字符串的賦值
}
int main()
{
    struct studen_t stu = { 1, "小明" };
    func1(stu);
    func2(&stu);
//傳遞空間地址進(jìn)入函數(shù),不僅可以訪問(wèn)地址所指向的空間,還可以修改所指向空間的值
    func1(stu);
    system("pause");
    return 0;
}

數(shù)組傳參:

#include#include#includestruct studen_t{
    int sn;
    char name[32];
};
void func(struct studen_t *pstu)
{
    pstu->sn = 21;
    strcpy(pstu->name, "小紅");//結(jié)構(gòu)體中字符串的賦值
}
int main()
{
    struct studen_t arry[3] = {
        { 1, "張三" },
        { 2, "李四" },
        { 3, "王五" }
    };
    func(arry);//arry是數(shù)組名,是數(shù)組首元素的地址,傳遞進(jìn)入?yún)?shù)后,即修改數(shù)組首元素的值
    for (int i = 0; i< 3; i++)
    {
        printf("學(xué)號(hào):%2d  姓名:%s\n", arry[i].sn, arry[i].name);
    }
    system("pause");
    return 0;
}
因?yàn)榻Y(jié)構(gòu)體類(lèi)型占用空間較大,所以結(jié)構(gòu)體傳參時(shí)一般采用 傳址操作(形參是地址,指針大小固定為4/8字節(jié))。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:C語(yǔ)言-結(jié)構(gòu)體-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://www.chinadenli.net/article32/dsojpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷(xiāo)推廣網(wǎng)站導(dǎo)航網(wǎng)頁(yè)設(shè)計(jì)公司營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

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

商城網(wǎng)站建設(shè)