小豬的C語言快速入門系列(六)

coder-pig發表於2017-10-16

小豬的C語言快速入門系列(六)

標籤: C語言


本節引言

上一節中,我們學習了複合資料型別中的 指標,作為C語言的靈魂,務必要好好
掌握,看本教程是肯定不夠的,通過練習的方式加深熟練度,後面學資料結構,
指標是必不可少的!!!本節我們來把剩下的幾個複合資料型別過一過,他們
分別是:函式結構體共用體列舉型別


本節學習路線圖


函式

Tips

空函式就是什麼都不做的函式,一般我們開發中不需要立即實現的函式,我們可以
先寫一個空函式放著先,簡單的空函式示例: void abc(){ }


結構體


共用體

程式碼示例2
建立一個共用體型別,當輸入的時學生型別時,要求輸入的是學生id,
當輸入的是老師型別的時候,要求輸入老師職稱

#include <stdio.h>  
union type  
{  
    int cid;  //班級  
    char title[20];  //職稱   
};  

struct Person  
{  
    char name[10];  //姓名  
    char sex;  //性別  
    int age;   //年齡  
    int flag;  //標誌是老師還是學生   
    union type tp;  
};  

int main()  
{  
    struct Person person[10];  
    int i;  
    int num;  
    char ch;  
    printf("請輸入要錄入的人數:\n");  
    scanf("%d",&num);  
    for(i = 0;i<num;i++)  
    {  
        printf("請輸入第%d個人員的資訊:\n",i + 1);  
        printf("姓名: ");scanf("%s",&person[i].name);getchar();  
        printf("性別: ");scanf("%c",&person[i].sex);getchar();  
        printf("年齡: ");scanf("%d",&person[i].age);  
        printf("職業識別符號: ");scanf("%d",&person[i].flag);  
        if(person[i].flag == 0)  
        {  
            printf("請輸入學生的班級id:   ");  
            scanf("%d",&person[i].tp.cid);  
        }  
        else if(person[i].flag == 1)  
        {  
            printf("請輸入老師的職稱:   ");  
            scanf("%s",&person[i].tp.title);  
        }  
        else  
        {  
            printf("輸入有誤,請重新輸入!\n");  
            i -= 1;  
        }  
    }  
    printf("\n輸出所有錄入人員的資訊:\n");  

    for(i = 0;i<num;i++)  
    {  
        printf("輸出第%d個人員的資訊:\n",i + 1);  
        printf("姓名: ");puts(person[i].name);  
        printf("性別: ");printf("%c",person[i].sex);  
        printf("\t年齡: ");printf("%d",person[i].age);  
        if(person[i].flag == 0)  
        {  
            printf("\t學生的班級id:   ");  
            printf("%d\n",person[i].tp.cid);  
        }  
        else if(person[i].flag == 1)  
        {  
            printf("\t老師的職稱:   ");  
            puts(person[i].tp.title);  
        }  
    }  
    return 0;  
}

執行結果


列舉


型別定義符(typedef)

其實就是型別別名而已,一般是定義結構體的時候用得較多。


本文連結小豬的C語言快速入門系列(六)
作者:Coder-Pig
出處http://blog.csdn.net/coder_pig
本文基於知識共享署名-相同方式共享 4.0 國際許可協議釋出,歡迎轉載,
演繹或用於商業目的,但是必須保留本文的署名及連結。

相關文章