在Objective-C編程語言中,數據類型是指用於聲明不同類型的變數或函數的擴展系統。 變數的類型決定了它在存儲中佔用的空間大小以及如何解釋存儲的位模式。
Objective-C中的類型可分為以下幾類 -
編號 | 類型 | 描述 |
---|---|---|
1 | 基本類型 | 它們是算術類型,由兩種類型組成:(a)整數類型和(b)浮點類型。 |
2 | 枚舉類型 | 它們又是算術類型,用於定義只能在整個程式中分配某些離散整數值的變數。 |
3 | void類型 | 類型說明符void 表示沒有可用的值。 |
4 | 派生類型 | 它們包括(a)指針類型,(b)數組類型,(c)結構類型,(d)聯合類型和(e)函數類型。 |
數組類型和結構類型統稱為聚合類型。 函數的類型指定函數返回值的類型。 我們將在下一節中看到基本類型,而其他類型將在後續章節仲介紹。
1. 整數類型
下表提供了有關標準整數類型的存儲大小和值範圍的詳細資訊 -
類型 | 存儲大小 | 值範圍 |
---|---|---|
char |
1位元組 | -128 ~ 127 或 0 ~ 255 |
unsigned char |
1位元組 | 0 ~ 255 |
signed char |
1位元組 | -128 ~ 127 |
int |
2或4位元組 | -32,768 ~ 32,767 或 -2,147,483,648 ~ 2,147,483,647 |
unsigned int |
2或4位元組 | 0 ~ 65,535 或 0 ~ 4,294,967,295 |
short |
2位元組 | -32,768 ~ 32,767 |
unsigned short |
2位元組 | 0 ~ 65,535 |
long |
4位元組 | -2,147,483,648 ~ 2,147,483,647 |
unsigned long |
4位元組 | 0 ~ 4,294,967,295 |
要在特定平臺上獲取類型或變數的確切大小,可以使用sizeof
運算符。 運算式sizeof(type)
產生對象或類型的存儲大小(以位元組為單位)。 以下是在任何機器上獲取int
類型大小的示例代碼 -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for int : %d \n", sizeof(int));
return 0;
}
編譯並執行上述程式時,它在Linux上生成以下結果 -
2018-11-14 01:03:20.930 main[118460] Storage size for int : 4
2. 浮點類型
下表提供了有關標準浮點類型的存儲大小和值範圍及其精度的詳細資訊 -
類型 | 存儲大小 | 值範圍 | 精度 |
---|---|---|---|
float |
4位元組 | 1.2E-38 ~ 3.4E+38 |
6位小數 |
double |
8位元組 | 2.3E-308 ~ 1.7E+308 |
15位小數 |
long double |
10位元組 | 3.4E-4932 ~ 1.1E+4932 |
19位小數 |
頭檔float.h
定義了一些宏,可使用這些值以及有關程式中實數的二進位表示的其他詳細資訊。 以下示例將列印浮點類型佔用的存儲空間及其範圍值 -
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Storage size for float : %d , maxval=%f \n", sizeof(float), FLT_MAX);
return 0;
}
執行上面示例代碼,得到以下結果:
2018-11-14 01:10:18.270 main[44023] Storage size for float : 4 , maxval=340282346638528859811704183484
注:有關 float.h 中定義的一些宏如下所示 -
#define FLT_DIG 6 /* # of decimal digits of precision */
#define FLT_EPSILON 1.192092896e-07F /* smallest such that 1.0+FLT_EPSILON != 1.0 */
#define FLT_GUARD 0
#define FLT_MANT_DIG 24 /* # of bits in mantissa */
#define FLT_MAX 3.402823466e+38F /* max value */
#define FLT_MAX_10_EXP 38 /* max decimal exponent */
#define FLT_MAX_EXP 128 /* max binary exponent */
#define FLT_MIN 1.175494351e-38F /* min positive value */
#define FLT_MIN_10_EXP (-37) /* min decimal exponent */
#define FLT_MIN_EXP (-125) /* min binary exponent */
#define FLT_NORMALIZE 0
#define FLT_RADIX 2 /* exponent radix */
#define FLT_ROUNDS 1 /* addition rounding: near */
3. void類型
void
類型指定沒有可用的值。它用於以下兩種情況 -
編號 | 類型 | 描述 |
---|---|---|
1 | 函數指定返回void |
Objective-C中有各種函數,它們不需要返回值,或者也可以說它們返回void 。 沒有返回值的函數的返回類型為void 。 例如,void exit(int status); |
2 | 函數參數為void |
Objective-C中有各種函數不接受任何參數。沒有參數的函數可以指示接受void 類型。 例如,int rand(void); |
如果此時還無法理解void
類型也沒有關係,可在後面的章節中看到更多介紹這個概念和示例。
上一篇:
Objective-C基本語法
下一篇:
Objective-C變數