1.常量分類
(1)整型常量 只有10進制有正負整數
%d 十進制占位符 以10進制方式打印整型常量
%o 八進制占位符 以8進制方式打印整型常量
%x 十六進制占位符 以16進制方式打印整型常量
10進制整型書寫 23
8進制整型書寫 0開頭 023
16進制整型書寫 ox開頭 ox23
short int 2個字節 16位 有符號(正負)-32768 ~ 32767
int 4個字節 32位
long int 8個字節 64位
u 無符號int型
ul/lu 無符號長整型
整數可以分為正整數和負整數存儲,正整數為原碼存儲,負整數為補碼存儲,第一個為符號位,0表示負數,1表示正數
6 占兩個字節,分正負 可以存儲為1000000000000110 ,
得到補碼的方式:原碼->反碼(變成相反的數)->補碼(+1)
-6 00000000000000110->1111111111111001->111111111111010
(2)實型常量
一般形式的實數:由整數,小數點,小數三部分組成。整數部分或小數部分可以省略 例如,12.345、47.0、-.234、47.
指數形式的實數:由尾數,字母e/E,小數點組成 例如.2e3、1.2e-3
(3)字符常量
‘0’-48 ‘A’-65 ‘a’-97
\n 換行 -10
\t 水平制表 -9
\b 退格 -8
\r 回車 -13
\f 換頁 -12
\\ 反斜槓“\” -92
\’ 單引號 -39
\“ 雙引號 -34
\ddd 1到3位8進制數所代表的字符 最多截取斜槓後面3位八進制數
\xhh 1到2位16進制數所代表的字符 最多截取斜槓x後面2位16進制數
(4)枚舉常量
一般定義整型常量,不加值默認從0開始計數,依次加1,從設定值開始,從值依次加1
enum weekday{
monday,
tuesday,
wednesday = 11,
thursday,
friday,
saturday = 33,
sunday
};
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
printf("%d%d%d%d%d%d%d",monday,tuesday,wednesday,thursday,friday,saturday,sunday);
}
}
(5)宏定義 不能加分號
(6)零值 即ASCII碼值為0的字符
(7)空值 數字0,\0, 指針NULL
(8)const常量
作用: (1)修飾一般變量,可以把變量變成常量符號
(2)修飾指針變量
2.指針,一個16進制的地址
取地址符:& %p:以16進制地址打印
取出地址的數值 :*
指針變量的一般形式
類型標識符 *指針變量名 int a =100; int *nA = &a;
必須使用同類型的變量存儲同類型的變量地址
如果初始化不賦值,需要初始化為NULL
char * 字符串變量
const char * 字符串常量
3.const修飾指針
(1)const int *p 能改變p存儲的地址,但是不可以改變存儲的地址中的數據
(2)int const *p 效果同(1)
(3)int *const p; 定義時必須初始化,不能改變地址,但可以改變存儲地址中的數據
(4)const int *const p; 既不能改變p存儲的地址,也不可以改變存儲的地址中的數據,定義時必須初始化
4.static靜態變量
(1)修飾局部變量,第一次調用時開辟內存空間,調用完後不回收內存,保留之前的數據,再次調用不會重新開辟內存和初始化
(2)靜態全局變量,全局變量可以被外部文件訪問,靜態全局變量只能被本文件使用
5.extern關鍵字使用
(1)聲明變量的關鍵字
條件預編譯:只編譯其中的一個條件,另一個不編譯
#if
#else
#endif