亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

C 語言中的 struct

在前面我們學習了很多種類的變量,每個變量都會有一種類型。但是如果我們需要定義一個變量,可以同時存儲不同的類型的變量,那會在很多場合下很方便的使用。比如我們常見的通信錄,里面會包含很多信息,比如姓名,電話號碼,郵箱地址等信息。這里面就會涉及到整數,字符串等等。如果每個人建立的時候都分別聲明一次其中的變量,那么工作量就會非常的大,也很容易出現錯誤。

那么怎么解決這種情況呢?這就是今天我們要講解的內容。

1. 定義聲明 struct

struct 可以將多個不同或者相同的變量組合起來形成一個變量集合。這樣就可以解決如通信錄之類應用中需要多個不同類型變量組合在一起的需求。我們只要定義一次這個集合,就可以利用這個集合來定義新的變量。被這個集合定義的變量,會包含里面定義時所包含的變量類型。

struct Contacts
{
    char name[100];
    int age;
    char mobile[12];
};

上面的例子展示了如何聲明一個 struct 。通過一個關鍵詞 struct 后面加上這個結構體的名稱,這個結構體的內部則是組成的變量。

當然你可以將定義結構體和使用這個結構體聲明變量一起進行。如下:

struct Contacts
{
    char name[100];
    int age;
    char mobile[12];
} person1, person2, person3;

也可以單獨使用結構體來定義變量。

struct Contacts person1, person2, person3;

2. 初始化

初始化一個結構體有點類似一個數組的初始化,就是將里面的變量元素按照順序一次賦值就可以了。

struct Contacts person1 = {"John", 30, "123456789000"};

3. 使用 struct

當我們聲明一個結構體變量后就要對其賦值,那么如何訪問這個集合中的變量呢?

可以使用英文中的句號 . ,這個代表了結構體中的成員訪問。

 printf("Name: %s, Age: %d, mobile: %s\n", person1.name, person1.age, person1.mobile);

4. 示例程序

#include <stdio.h>

int main()
{
    struct Contacts
    {
        char name[100];
        int age;
        char mobile[12];
    };

    struct Contacts person1 = {"John", 30, "123456789000"};

    struct Contacts person2 = {"Tom", 33, "123456789011"};

    struct Contacts person3 = {"Ann", 23, "123456789022"};

    printf("Name: %s, Age: %d, mobile: %s\n", person1.name, person1.age, person1.mobile);
    printf("Name: %s, Age: %d, mobile: %s\n", person2.name, person2.age, person2.mobile);
    printf("Name: %s, Age: %d, mobile: %s\n", person3.name, person3.age, person3.mobile);

    return 0;
}

運行結果:

Name: John, Age: 30, mobile: 123456789000
Name: Tom, Age: 33, mobile: 123456789011
Name: Ann, Age: 23, mobile: 123456789022

5. 小結

結構體最為一種變量的集合,可以將各種類型的變量組成一個集合。方便我們完成需要多種變量組合才能完成的操作。其實幾個的應用非常的廣泛,除了通訊錄,還有比如系統存儲鼠標位置,畫筆,一些常見的數據結構等等。