Objective C資料型別 資料型別轉換

2022-06-23 22:45:13 字數 2290 閱讀 9136

資料型別

1.objective-c資料型別可以分為:基本資料型別、物件資料型別和id型別。

2.基本資料型別有:int、float、double和char型別。

3.物件型別就是類或協議所宣告的指標型別,例如:

nsautoreleasepool *pool ,其中,nsautoreleasepool是一個類,nsautoreleasepool *是它指標型別或叫物件型別。

4.id型別可以表示任何型別,一般只是表示物件型別,不表示基本資料型別,所以剛才的變數可以宣告pool也可以宣告為id pool。

基本資料型別——int型別

int型別代表整數,它的十六進位制表示方式:oxffed0d.

在使用nslog函式中格式化字串使用%i表示十進位制的整數,%o(字母o)表示8進位制整數,%#x表示十六進位制整數,它的取值範圍是與裝置相關的,無法一概而論。

基本資料型別——float型別

1.float型別表示代表雙精度浮點數,與float型別很相似,可以在數值後面加上f或者f,例如:13.5f。float浮點數也可以用科學計數法表示,例如:1.7e4。

2.nslog函式中格式化字串:%f表示浮點數(會保留後面6位小數),%e表示科學計數法,%g表示浮點數。

基本資料型別——double型別

1.double型別代表雙精度浮點數,與float數相似,佔用的位元組空間double型別大體上是float型別的兩倍。大多數計算機是使用64位,表示double型別。

2.nslog函式中格式化字串,與float的%f、%e和%g相同。

基本資料型別——char型別(在計算機內部以int型別儲存)

1.char型別代表字元型別,存放點個字元,用單引號引用起來。如:’a’,如果要表示一些特殊字元,要使用轉義字元“\”。

2.nslog函式中格式化字串:%c。

資料型別限定詞:老外寫的好有這些東西。

objective-c中資料型別可以在int、float和double、char型別前面加上限定詞,限定詞有:long、longlong、short、unsigned和signed,這些限定詞從而增強了基本型別。

long int:在大部分計算機中代表32位整數,在整數後面加l(或l)表示,如:long int numberofpoints = 1310l.nslog函式中格式化字串使用%li表示。

long long int:可以指定更加寬泛的整數型別,保證變數至少64位寬度。nslog函式中格式化字串使用%lli表示。

long double:可以指定更為寬泛的double型別,要顯示這個可以在尾部使用l(大小寫)表示,1.23+7l.nslog函式中格式化字串使用%lf、%le和%lg表示。

short int:用來指定存放相對小得整數,一般式佔用int型別的一半。大部分計算機是16位。

unsigned int(無符號整數):告訴編譯器只是接受整數,在數值之後存放字母u(或u)表示,例如:0x00ffu;在編寫整數的時候,可以將字母u(或u)和l(或l)組合起來,例如:100ul.

signed char(char在計算機中存的也是整數,所以有符號和無符號之分。):代表的字元和編譯器有關,一般也作為無符號整數使用。

布林型別(在計算機內部以int型別儲存) 

布林型別是_bool(別名bool),取值範圍是1或0,其中1可以用ture和yes表示,0可以用false和no表示。

列舉型別(在計算機內部以int型別儲存) 

如果需要定義一組相關常量,可以採用列舉型別,把這些常量定義成一個型別,例如遊戲在上、下、左、右方向,可以列舉型別:enum direction.其中,up從0開始,down是1,以此類推加1。如果不想從0開始,也可以指定初始值,如:enum direction。

資料型別轉換

1.談到資料型別,就必然有資料型別轉換的特點。

2.按照資料型別佔用儲存不同可以自動型別轉換或強制型別轉換,總的原則是小儲存容量型別可以自動轉換成大儲存容量資料型別。

3.不同型別資料間按照下面關係的從左到右(從低到高)自動轉換。如下:

_bool、char、short int、列舉型別——>int——>long int——>long long int 

——>float——>double——>long double.

4.型別轉換先後順序表

5.強制型別轉換

如果遵守型別轉換是右到左情況,就需要強制型別轉換了。強制型別轉換語法形式上很簡單,就是在資料前面加上(目標型別),但是這種轉換是存在風險的,有可能造成資料的丟失,需要謹慎進行。