Objective-C 數據類型
在Objective-C 編程語言,數據類型是指一個廣泛的係統,用於不同類型的聲明變量或函數。多少它占據的空間存儲和存儲的位模式如何被解釋變量的類型確定。
Objective-C語言中的類型可分類如下:
S.N. | 類型和說明 |
---|---|
1 |
基本類型: 它們是算術類型,包括兩種類型:(一)的整數類型,及(b)浮點型。 |
2 |
枚舉類型: 也是算術類型,它們被用來定義變量隻能被分配在整個程序中的若乾離散的整數值。 |
3 |
void類型: 類型說明符void表示冇有可用的值。 |
4 |
派生類型: 他們包括指針類型,數組類型,結構類型,聯合類型及函數類型。 |
被稱為統稱為聚合類型的數組類型和結構類型。一個函數的類型指定函數的返回值的類型。而其他類型將會在即將到來的章節,我們將在下麵的章節中看到的基本類型。
整型
下表給出了有關標準的整數類型的存儲大小和值範圍:
類型 | 存儲長度 | 值範圍 |
---|---|---|
char | 1 byte | -128 to 127 or 0 to 255 |
unsigned char | 1 byte | 0 to 255 |
signed char | 1 byte | -128 to 127 |
int | 2 or 4 bytes | -32,768 to 32,767 or -2,147,483,648 to 2,147,483,647 |
unsigned int | 2 or 4 bytes | 0 to 65,535 or 0 to 4,294,967,295 |
short | 2 bytes | -32,768 to 32,767 |
unsigned short | 2 bytes | 0 to 65,535 |
long | 4 bytes | -2,147,483,648 to 2,147,483,647 |
unsigned long | 4 bytes | 0 to 4,294,967,295 |
為了得到確切的大小,類型或變量在特定平台上,可以使用sizeof運算符。表達式sizeof(類型)產生的對象或類型以字節為單位的存儲大小。以下是這個例子中的任何一台機器上的 int類型的大小:
#import <Foundation/Foundation.h> int main() { NSLog(@"Storage size for int : %d ", sizeof(int)); return 0; }
當編譯並執行上述程序,在Linux上產生以下結果:
2013-09-07 22:21:39.155 demo[1340] Storage size for int : 4
浮點類型
下表給出了有關標準的存儲大小和取值範圍和精度的浮點類型的詳細信息:
類型 | 存儲大小 | 取值範圍 | 精確 |
---|---|---|---|
float | 4 byte | 1.2E-38 to 3.4E+38 | 6 decimal places |
double | 8 byte | 2.3E-308 to 1.7E+308 | 15 decimal places |
long double | 10 byte | 3.4E-4932 to 1.1E+4932 | 19 decimal places |
頭文件float.h中定義的宏,允許使用這些值和其他詳細信息在程序中實數的二進製表示。下麵的例子將打印存儲空間所采取的浮點類型,其範圍值:
#import <Foundation/Foundation.h> int main() { NSLog(@"Storage size for float : %d ", sizeof(float)); return 0; }
當編譯並執行上述程序,在Linux上產生以下結果:
2013-09-07 22:22:21.729 demo[3927] Storage size for float : 4
void 類型
void類型指定,冇有可用的值。它被用在三種情況:
S.N. | 類型和說明 |
---|---|
1 |
函數返回為void Objective-C中有各種不同的函數,對於冇有返回值,或者可以說他們返回void。冇有返回值的函數的返回類型為void。例如, void exit (int status); |
2 |
函數參數為void Objective-C中有各種不同的函數,不接受任何參數。不帶參數的函數可以接受一個void。例如, int rand(void); |
void類型在這一點上可能不很好的理解,讓我們繼續在接下來的章節中,我們將介紹這些概念。