標籤:style class blog c code java
本文來自:部落格園CoderSmallfan。轉載請註明出處:http://www.cnblogs.com/codersmallfan/p/3746837.html
學習ios的同學一般都是具備一定的程式設計語言基礎,所以基礎文法這塊的東西並不需要像“譚xx 叫獸“那種一步一個腳印兒地學,一般也就看看異同點。objective-c這門語言是由c派生出來的,所以面向過程方面的東西是完全和c相同的,而新增的物件導向方面的知識點,多應與c++進行比較,這也是objective-c需要學習的基礎文法唯一的地方(以下提及關於c的文法內容如果遺忘,請自行複習)。
首先基礎資料型別 (Elementary Data Type)分為int、float、double、char和id。前4種和c語言一樣具有long、short、unsigned、signed限定詞修飾,並支援八進位和十六進位的格式。int類型和c語言中一樣也是裝置相關量,由機器決定記憶體量,可佔用32位或64位。需要注意一點的是,在NSLog字串輸出函數中,int類型的預留位置更傾向於使用%i而不是%d(%li,%hi,%u)。最後一種基礎資料型別 (Elementary Data Type)id是objective-c特有的類型,可以看作是c語言中的void *類型,可儲存任何類型的對象,從某種意義說,它是一般物件類型。
算術運算式及一元運算子與c語言大同小異,模運算子%只用於處理整數,類型轉換也分為隱式轉換與顯式轉換(使用括弧加基本類型)。
迴圈結構(while、do while、for),跳躍陳述式(break、continue),選擇結構(if、else if、else、switch),條件運算子(c?e1:e2),位元運算符(與或非、求反、移位),枚舉類型(enum)與C語言相同。需要注意的是,右移位操作實際是算術右移(按符號位)還是邏輯右移(全為0)也與系統有關。
objective-c和c++語言一樣,支援Boolean變數。
//將會輸出"Yes"int isPrime = 10;if(isPrime){ NSLog(@"Yes"); }else{ NSLog(@"No"); }
//將會輸出“Yes”int isWrite = 0;if(!isWrite ){ NSLog(@"Yes"); }else{ NSLog(@"No"); }
Objective-c中實際上還有內建一個BOOL類型的屬性,其預定義的值為YES和NO。
關於Objective-c中的其他相關基礎文法特性,在其他篇章將會陸續提到(例如靜態變數,全域變數等),這裡不做過多解釋。