免費開源的iOS開發學習平臺

結構struct:1-結構的定義與基本使用

Objective-C中除了類之外,還定義了結構struct用來存儲變量。在一些場景下,類和結構是可以通用的。

假如我們希望存儲日期,包含:年、月、日三個變量,那么可以考慮定義一個Date類,其中包含3個int類型的屬性,分別存儲year,month和day。另外,我們也可以使用結構來定義一個新的數據類型。

結構類型的定義

可以使用如下方法來定義結構類型。

struct 結構體名稱 {
    成員變量類型 成員變量名稱;
    成員變量類型 成員變量名稱;
    成員變量類型 成員變量名稱;
    ...;
};

例如:我們可以定義一個結構體類型Date來存儲日期。

    //定義名為Date的結構體
    struct Date {
        int day;
        int month;
        int year;
    };

結構變量的聲明

聲明一個結構體變量,會在內存中分配空間,等待給成員變量賦值。聲明結構體變量的方式為:

struct 結構體名稱 結構體變量名稱;

例如:

    //聲明一個名為today的結構體變量,類型為date,此時會分配內存空間,用來存儲日月年
    struct Date today;

結構變量的賦值/初始化

結構變量的初始化以及賦值可以采用如下兩種方式。

  • 使用點語法賦值。
    //初始化
    today.day = 2;
    today.month = 9;
    today.year = 2016;
  • 在定義結構體變量時,直接賦值。
    struct Date tomorrow = {3,9,2016};

結構成員變量的訪問

我們可以使用點語法來獲取結構中成員變量的值。

void structTest () {
    //定義名為Date的結構體
    struct Date {
        int day;
        int month;
        int year;
    };
    
    //聲明一個名為today的結構體變量,類型為date,此時會分配內存空間,用來存儲日月年
    struct Date today;
    
    //初始化
    today.day = 2;
    today.month = 9;
    today.year = 2016;
    
    struct Date tomorrow = {3,9,2016};
    
    //訪問
    NSLog(@"今天是:%d年%d月%d日",today.year,today.month,today.day);
    NSLog(@"明天是:%d年%d月%d日",tomorrow.year,tomorrow.month,tomorrow.day);
}

運行結果:

示例代碼

https://github.com/99ios/6.5.1


日韩av 中文字幕 1_亚洲第一区在线_亚洲V日韩V精品v无码专区_色鬼久久亚洲AV综合