標籤:
PS:以下內容是在Xcode的編輯器64位環境下的測試結果,網上有關於64位和32位各資料類型存在的差異,請自行online search。
main.m
1 #import <Foundation/Foundation.h> 2 void basicDataTypeInC() { 3 NSMutableString *mStrInfo = [[NSMutableString alloc] init]; 4 //(數實值型別-》整型)整型;-2147483648至2147483647 5 int integerVal = 888; 6 //(數實值型別-》整型)短整型 7 short int shortIntegerVal = 888; 8 //(數實值型別-》整型)長整型 9 long int longIntegerVal = 888;10 11 //(數實值型別-》浮點型)單精確度型,存在失精度的情況(如下:由於單精確度型,有效位元是6-7位。而整數已佔3位,故小數3位或4位後均為無效數字)12 float floatVal = 888.8888888888;13 //(數實值型別-》浮點型)雙精確度型(如下:由於是雙精確度型,有效位元是15-16位。但VC6.0規定小數後最多保留6位,其餘部分四捨五入)14 double doubleVal = 888.8888888888;15 16 17 //字元類型18 char charVal = ‘a‘;19 char charVal2 = 97;20 //字串類型;實質是使用指標類型21 char *charVal3 = "I am a string.";22 23 //布爾型;非0和false,即為1表示true24 bool boolVal = true;25 bool boolVal2 = -1;26 bool boolVal3 = 1;27 bool boolVal4 = 2;28 [mStrInfo appendFormat:@"\nintegerVal=%i\n", integerVal]; //integerVal=88829 [mStrInfo appendFormat:@"shortIntegerVal=%hi\n", shortIntegerVal]; //shortIntegerVal=88830 [mStrInfo appendFormat:@"longIntegerVal=%li\n", longIntegerVal]; //longIntegerVal=88831 [mStrInfo appendFormat:@"floatVal=%f\n", floatVal]; //floatVal=888.88891632 [mStrInfo appendFormat:@"doubleVal=%f\n", doubleVal]; //doubleVal=888.88888933 [mStrInfo appendFormat:@"charVal=%c\n", charVal]; //charVal=a34 [mStrInfo appendFormat:@"charVal2=%c\n", charVal2]; //charVal2=a35 [mStrInfo appendFormat:@"charVal3=%s\n", charVal3]; //charVal3=I am a string.36 [mStrInfo appendFormat:@"boolVal=%i\n", boolVal]; //boolVal=137 [mStrInfo appendFormat:@"boolVal2=%i\n", boolVal2]; //boolVal2=138 [mStrInfo appendFormat:@"boolVal3=%i\n", boolVal3]; //boolVal3=139 [mStrInfo appendFormat:@"boolVal4=%i\n\n\n", boolVal4]; //boolVal4=140 41 42 [mStrInfo appendFormat:@"sizeof(int) 為%lu個位元組\n", sizeof(int)]; //sizeof(int) 為4個位元組43 [mStrInfo appendFormat:@"sizeof(short int) 為%lu個位元組\n", sizeof(short int)]; //sizeof(short int) 為2個位元組44 [mStrInfo appendFormat:@"sizeof(long int) 為%lu個位元組\n", sizeof(long int)]; //sizeof(long int) 為8個位元組45 [mStrInfo appendFormat:@"sizeof(float) 為%lu個位元組\n", sizeof(float)]; //sizeof(float) 為4個位元組46 [mStrInfo appendFormat:@"sizeof(double) 為%lu個位元組\n", sizeof(double)]; //sizeof(double) 為8個位元組47 [mStrInfo appendFormat:@"sizeof(char) 為%lu個位元組\n", sizeof(char)]; //sizeof(char) 為1個位元組48 [mStrInfo appendFormat:@"sizeof(bool) 為%lu個位元組", sizeof(bool)]; //sizeof(bool) 為1個位元組49 NSLog(@"%@", mStrInfo);50 }51 int main(int argc, const char * argv[]) {52 @autoreleasepool {53 NSLog(@"C語言的基礎資料型別 (Elementary Data Type)長度");54 basicDataTypeInC();55 }56 return 0;57 }
結果:
1 2015-05-15 23:01:06.687 CBasicDataType[917:36520] C語言的基礎資料型別 (Elementary Data Type)長度 2 2015-05-15 23:01:06.688 CBasicDataType[917:36520] 3 integerVal=888 4 shortIntegerVal=888 5 longIntegerVal=888 6 floatVal=888.888916 7 doubleVal=888.888889 8 charVal=a 9 charVal2=a10 charVal3=I am a string.11 boolVal=112 boolVal2=113 boolVal3=114 boolVal4=115 sizeof(int) 為4個位元組16 sizeof(short int) 為2個位元組17 sizeof(long int) 為8個位元組18 sizeof(float) 為4個位元組19 sizeof(double) 為8個位元組20 sizeof(char) 為1個位元組21 sizeof(bool) 為1個位元組
C語言的基礎資料型別 (Elementary Data Type)長度