Objective-C 快速導覽 - 基本資料型態與指標

Objective-C 有下列的基本資料型態 (basic data type)

資料型態種類關鍵字字面常數範例
字元char'a', '\n'
整數short int
整數unsigned short int
整數int10, -11, 0xFF3D, 0375
整數unsigned int10u, 100U,0XFFu
整數long int10l, -100L, 0xffffL
整數unsigned long int10UL, 100ul, 0xfffful
整數long long int10LL, 0xffffll
整數unsigned long long int10ULL, 0xffffull
浮點數float10.1f
浮點數double10.1
浮點數long double10.1l
布林值booltrue, false
任何型態的物件idnil
不表示型態void


下面程式 (program) 示範利用 sizeof 運算子 (operator) 計算每種基本資料型態所佔的位元組數
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSLog(@"%18s%4d", "char", sizeof(char));
    NSLog(@"%18s%4d", "short int", sizeof(short int));
    NSLog(@"%18s%4d", "unsigned short int", sizeof(unsigned short int));
    NSLog(@"%18s%4d", "int", sizeof(int));
    NSLog(@"%18s%4d", "unsigned int", sizeof(unsigned int));
    NSLog(@"%18s%4d", "long int", sizeof(long int));
    NSLog(@"%18s%4d", "unsigned long int", sizeof(unsigned long int));
    NSLog(@"%18s%4d", "long long int", sizeof(long long int));
    NSLog(@"%18s%4d", "float", sizeof(float));
    NSLog(@"%18s%4d", "double", sizeof(double));
    NSLog(@"%18s%4d", "long double", sizeof(long double));
    NSLog(@"%18s%4d", "id", sizeof(id));
 
    [pool drain];
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:datatype.m
   功能:Objective-c 程式範例
   作者:張凱慶
   時間:西元 2013 年 4 月 */


編譯執行,結果如下



32 位元電腦跟 64 位元電腦的結果可能會不同。


使用任何基本資料型態的變數前都需要先宣告,之後利用指派運算子賦予初值,如果沒有給予初值,變數中所儲存的會是記憶體中的殘值。


在 Objective-C 中,凡是物件 (object) 都要用指標 (pointer) 儲存,下例的 pools 都是指標變數 (variable)
#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    NSString *s = @"\n\nThere is no spoon.\n\n";
    NSLog(s);

    [pool drain];
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:pdemo.m
   功能:Objective-c 程式範例
   作者:張凱慶
   時間:西元 2013 年 4 月 */


編譯執行,結果如下



沒有賦予初值的指標會造成 Segmentation fault ,應盡量避免。


中英文術語對照
基本資料型態basic data type
程式program
運算子operator
物件object
指標pointer
變數variable


您可以繼續參考
基本概念
標記
基本資料型態與指標


相關目錄
Objective-C 快速導覽
Objective-C 教材
首頁



參考資料
Programming with Objective-C: About Objective-C
Programming with Objective-C: Working with Objects

沒有留言: