前言:定義
結構體並不是定義乙個變數,而是定義了種資料型別。
結構體作用:
結構體和其他型別基礎資料型別一樣,例如int型別,char型別 只不過結構體可以做成你想要的資料型別。以方便日後的使用。在實際專案中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的型別。由於c語言內部程式比較簡單,研發人員通常使用結構體創造新的「屬性」,其目的是簡化運算。
結構體在函式中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什麼,只要根據定義使用就可以了。
一、定義結構體
基本語法:
struct結構體名字 ;
結構體的定義方法三種,請繼續往下看。
定義方法一:
structprogrammer ;
初始化:
struct programmer protest = ;
定義方法二:
structstr1;
初始化,這個只能使用點語法,具體請往下看。
定義方法三:
typedef structstructext;
使用typedef可以建立新型別,現在可以使用structext定義新的結構體變數了。
我們可以看到,方法一和方法二的區別。方法一宣告了結構體名字,但沒有宣告結構體變數。方法二宣告了結構體變數,但沒有宣告結構體名字。因此我們可以知道:「結構體名字和結構體變數必須有其一,也可以兩者都存在」。
結構體名字及結構體變數都存在,例:
structprogrammer prosuccess, profail;
二、結構體成員訪問和賦值
訪問和賦值都是使用點語法
訪問:
prosuccess.name;prosuccess.age;
prosuccess.phone;
賦值/修改:
prosuccess.name = "calvin";
prosuccess.age = 27
;prosuccess.phone = "
13138940202
";
三、注意點
錯誤初始化寫法,這句話在預編譯時就會報錯:
prosuccess = ;
寫了這麼多,都還沒輸出過任何內容,這裡要說的是。使用char定義的變數,輸出時要使用%s。例:
nslog(@"%s- %d - %s", protest.name, protest.age, protest.phone);
ps:使用char定義的變數,不能儲存中文(因為我不知道如何輸出,輸出會變成亂碼,你根本都看不懂)。
博文出處:
iOS開發 Object C學習之結構體使用
前言 定義結構體並不是定義乙個變數,而是定義了種資料型別。結構體作用 結構體和其他型別基礎資料型別一樣,例如int型別,char型別 只不過結構體可以做成你想要的資料型別。以方便日後的使用。在實際專案中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的型別。由於c語言內部程式比較簡單...
ios學習筆記之Object C 集合
obejct c中包含了三種集合,分別是 陣列 字典和集 set 陣列和c語言中的陣列相似,但是oc中的陣列只能儲存物件,不能儲存基本資料型別,如int float enum struct等,也不能儲存nil。它也提供了編制好的索引物件,可以通過制定索引找到要檢視的物件。包含可變陣列 nsmutab...
IOS 開發之Object C中的物件詳解
ioswww.cppcns.com 開發之object c中的物件詳解 前言關於c語言的基礎部分已經記錄完畢,接下來就是學習object c了,編寫oc程式需要使用foundation框架。下面就是對oc中的物件介紹。物件物件和結構類似,乙個物件可以儲存多個相關的資料。在結構中,我們稱這些資料為成員...