C語言中常用的幾種基本數(shù)據(jù)類型有
基本數(shù)據(jù)類型的長度
short =2 unsigned short=2
char =1 unsigned char=1
int =4 unsigned int=4
long =8 unsigned long=8
float=4 float沒有unsigned
double=8 double沒有unsigned
占位符的基本介紹
char vChar = -'a';
unsigned char uvChar =-'a';
short vShort = -100;
unsigned short vuShort =100;
int vInt = -1;
unsigned int uvInt = 2;
float vFloat = -200.02;
// unsigned float vuFloat = 200.02;
long vLong = -300.12;
unsigned long vuLong = 300.12;
double vDouble = -4000.45;
printf("vChar= %d uvChar=%d vShort=%d vuShort= %d vInt=%d uvInt=%d vLong =%ld vuLong=%lu vFloat=%f vDouble=%f",vChar,uvChar,vShort,vuShort,vInt,uvInt,vLong,vuLong,vFloat,vDouble);
打印debug常用的占位符的詳細介紹
%@ 對象
%d得哆, %i 整數(shù)
%li 長整型
%u 無符號整形
%f 浮點/雙字
%x, %X 二進制整數(shù)
%o 八進制整數(shù)
%zu size_t
%p 指針
%e 浮點/ 雙字 (科學計算) (double)
%g 浮點/ 雙字 (double)
%s C字符串
%.*s Pascal字符串
%c 字符
%C unichar
%lld 64位長整數(shù)(long long)
%llu 無符號64位長整數(shù)
%Lf 64位雙數(shù)
%% %轉(zhuǎn)義
盡管有那么多的占位符棚饵,但是好像沒有發(fā)現(xiàn)BOOL型的數(shù)據(jù)的占位符,這也是比較糾結(jié)的地方挑势,看了一下別人是怎么解決這個問題的
BOOL studyBool = YES;
NSLog(@"打印BOOL型數(shù)據(jù)%@",studyBool?@"YES":@"NO");//打印BOOL型數(shù)據(jù)YES
NSLog(@"打印BOOL型數(shù)據(jù)%d",studyBool);//打印BOOL型數(shù)據(jù)1
BOOL alsoBool = NO;
NSLog(@"打印BOOL型數(shù)據(jù)%@",alsoBool?@"YES":@"NO");//打印BOOL型數(shù)據(jù)NO
NSLog(@"打印BOOL型數(shù)據(jù)%d",alsoBool);//打印BOOL型數(shù)據(jù)0
詳細介紹:**********************************************************
%@: Objective-C對象,印有字符串返回descriptionWithLocale:如果于的話,或描述相反.CFTypeRef工作對象,返回的結(jié)果的CFCopyDescription功能.(這個翻譯有問題建議按照自己的理解方式理解)。
%%: 為'%'字符;
%d,%D,%i: 為32位整型數(shù)(int);
%u,%U: 為32位無符號整型數(shù)(unsigned int);
%hi: 為有符號的16位整型數(shù)(short);
%hu: 為無符號的16位整型數(shù)(unsigned shord);
%qi: 為有符號的64位整型數(shù)(long long);
%qu: 為無符號的64位整型數(shù)(unsigned long long);
%x: 為32位的無符號整型數(shù)(unsigned int),打印使用數(shù)字0-9的十六進制,小寫a-f;
%X: 為32位的無符號整型數(shù)(unsigned int),打印使用數(shù)字0-9的十六進制,大寫A-F;
%qx: 為無符號64位整數(shù)(unsigned long long),打印使用數(shù)字0-9的十六進制,小寫a-f;
%qX: 為無符號64位整數(shù)(unsigned long long),打印使用數(shù)字0-9的十六進制,大寫A-F;
%o,%O: 為32位的無符號整數(shù)(unsigned int),打印八進制數(shù);
%f: 為64位的浮點數(shù)(double);
%e: 為64位的浮點數(shù)(double),打印使用小寫字母e,科學計數(shù)法介紹了指數(shù)的增大而減小;
%E: 為64位的浮點數(shù)(double),打印科學符號使用一個大寫E介紹指數(shù)的增大而減小;
%g: 為64位的浮點數(shù)(double),用%e的方式打印指數(shù),如果指數(shù)小于4或者大于等于精度,那么%f的風格就會有不同體現(xiàn);
%G: 為64位的浮點數(shù)(double),用%E的方式打印指數(shù),如果指數(shù)小于4或者大于等于精度,那么%f的風格就會有不同體現(xiàn);
%c: 為8位的無符號字符%c(unsigned char),通過打印NSLog()將其作為一個ASCII字符,或者,不是一個ASCII字符,八進制格式\ddd或統(tǒng)一標準的字符編碼的十六進制格式\udddd,在這里d是一個數(shù)字;
%C: 為16位Unicode字符%C(unichar),通過打印NSLog()將其作為一個ASCII字符,或者,不是一個ASCII字符,八進制格式\ddd或統(tǒng)一標準的字符編碼的十六進制格式\\udddd,在這里d是一個數(shù)字;
%s: 對于無符號字符數(shù)組空終止,%s系統(tǒng)中解釋其輸入編碼,而不是別的,如utf-8;
%S: 空終止一系列的16位Unicode字符;
%p: 空指針(無效*)霞幅,打印十六進制的數(shù)字0-9和小寫a-f,前綴為0x;
%L: 在明確規(guī)定的長度下,進行修正,下面的一批數(shù)據(jù)a,A,e,E,f,F,g,G應(yīng)用于雙精度長整型的參數(shù);
%a: 為64位的浮點數(shù)(double),按照科學計數(shù)法打印采用0x和一個十六進制數(shù)字前使用小寫小數(shù)點p來介紹指數(shù)的增大而減小;
%A: 為64位的浮點數(shù)(double),按照科學計數(shù)法打印采用0X和一個十六進制數(shù)字前使用大寫字母小數(shù)點P界掃指數(shù)的增大而減锌甑恰;
%F: 為64位的浮點數(shù)(double),按照十進制表示法進行打臃蒲纭魂贬;
%z: 修改說明在%z長度以下d,i,o,u,x,X適用于某一指定類型的轉(zhuǎn)換或者適用于一定尺寸的整數(shù)類型的參數(shù);
%t: 修改說明在%t長度以下d,i,o,u,x,X適用于某一指定類型或一定尺寸的整數(shù)類型的轉(zhuǎn)換的參數(shù);
%j: 修改說明在%j長度以下d,i,o,u,x,X適用于某一指定類型或一定尺寸的整數(shù)類型的轉(zhuǎn)換的參數(shù)