IOS-Object-C學習之結構體使用 – iPhone手機開發技術文章 iPhone軟體開發教學課程

前言:定義結構體並不是定義一個變量,而是定義瞭種數據類型。

 

 

 

結構體作用:

 

  結構體和其他類型基礎數據類型一樣,例如int類型,char類型 隻不過結構體可以做成你想要的數據類型。以方便日後的使用。

  在實際項目中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的類型。由於C語言內部程序比較簡單,研發人員通常使用結構體創造新的“屬性”,其目的是簡化運算。

  結構體在函數中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,隻要根據定義使用就可以瞭。

摘自:百度百科

 

 

 

一、定義結構體

 

基本語法:

 

struct 結構體名字 {

    類型 名字;

    類型 名字;

    類型 名字;

    … 

};

 

 

結構體的定義方法三種,請繼續往下看。

 

定義方法一:

 

struct programmer {

    char *name;

    int age;

    int phone;

};

初始化:

 

struct programmer proTest = {"Garvey", 28, "13823992034"};

 

 

定義方法二:

 

struct {

    int age;

    int tag;

} str1;

初始化,這個隻能使用點語法,具體請往下看。

 

 

 

定義方法三:

 

typedef struct {

    char *name;

    int tag;

} structExt;

 使用typedef可以創建新類型,現在可以使用structExt定義新的結構體變量瞭。

 

 

 

我們可以看到,方法一和方法二的區別。方法一聲明瞭結構體名字,但沒有聲明結構體變量。方法二聲明瞭結構體變量,但沒有聲明結構體名字。因此我們可以知道:“結構體名字和結構體變量必須有其一,也可以兩者都存在”。

 

結構體名字及結構體變量都存在,例:

 

struct programmer {

    char *name;

    int age;

    char *phone;

} proSuccess, proFail;

 

 

二、結構體成員訪問和賦值

 

訪問和賦值都是使用點語法

 

訪問:

 

proSuccess.name;

proSuccess.age;

proSuccess.phone;

 

 

賦值/修改:

 

proSuccess.name = "Calvin";

proSuccess.age = 27;

proSuccess.phone = "13138940202";

 

 

三、註意點

 

錯誤初始化寫法,這句話在預編譯時就會報錯:

 

proSuccess = {"name", 10, "13732423452"};

 

 

寫瞭這麼多,都還沒輸出過任何內容,這裡要說的是。使用char定義的變量,輸出時要使用%s。例:

 

NSLog(@"%s- %d – %s", proTest.name, proTest.age, proTest.phone);

PS:使用char定義的變量,不能存儲中文(因為我不知道如何輸出,輸出會變成碼,你根本都看不懂)。

 

 

You May Also Like