c語言中,僅有4種基本資料型別-整形,浮點型,指標和聚合型別(陣列和結構)
short int 至少16位,long int 至少32位
標頭檔案 limits.h說明了各種不同的整型型別的特點
常量不能修改但是可以通過
char *message="hello world" < => char *message; message="hello world";
int const a;<=> const int a;
//看上去是將初始值賦給*message,其實是賦值給message本身
char *message = "hello world" ;
typedef
char *ptr_to_char;
ptr_to_char a; //a是乙個指向字元的指標
//typedef 與#define相比,typedef可以處理指標型別的宣告
const
int a1 = 0;
intconst a2 = 1;
int *pi;//pi->指向整形的指標
intconst *pci;//指向整形常量的指標,可修改指標的值,不可以修改它所指向的值
int *const cpi=0;//指向整形的常量指標,此時指標是常量,它的值無法修改,可修改它指向的整形值
//左定值(指標指向的值不可修改),右定向(指標不可修改)
int a = 248, b = 4;
intconst c = 21;
const
int *d = &a;
int * const e = &b;
intconst * const f = &a;
//c = 32;
//*d = 43;
//e = &a;
//f = 0x321f;
//d = &b;
四種不同的作用域:檔案作用域,函式作用域,**塊作用域,原型作用域
**塊作用域: 一對花括號之間{},內層**塊作用域會隱藏同名的外層的識別符號
檔案作用域: 任何在**塊作用域之外的都成為檔案作用域
原型作用域:只適用於函式原型宣告的引數名
函式作用域:只適用於語句標籤,語句標籤用於goto語句(乙個函式中,所有語句標籤必須一致),盡量不用
連線屬性:external(外部) internal (內部) none(無)
函式的形參不能宣告為static,因為實參要在堆疊中傳遞給函式,用於支援遞迴
具有external連線屬性的實體在所有檔案的所有實體中,都可以訪問,只要變數並非宣告於**塊或
函式定義內部,他在預設的情況下連線屬性都是external,
具有external連線屬性的實體總有靜態儲存型別
C和C指標讀書筆記
1.c中變數的儲存型別 儲存型別分為靜態儲存 普通記憶體 堆疊,暫存器自動變數即 塊內部的變數儲存於堆疊,其他變數儲存於普通記憶體即靜態儲存,如果頻繁訪問乙個變數,宣告為暫存器型別後儲存於硬體暫存器中。2.c中實體的鏈結屬性 1 屬於internal鏈結屬性的識別符號在同乙個原始檔內的所有宣告中都指...
《C和指標》讀書筆記 6
宣告 該讀書筆記摘抄自 c和指標 kenneth a.reek 著 徐波 譯 為了克服自己走馬觀花,提高閱讀和學習效率,決定將自己在讀書過程中遇到的一些知識點加以摘抄和總結備忘,在此感謝原書作者和翻譯。一 遞迴的兩個特性 1 存在限制條件 2 每次遞迴之後越來越接近限制條件 二 將二進位制數字轉換為...
《C和指標》讀書筆記 7
宣告 該讀書筆記摘抄自 c和指標 kenneth a.reek 著 徐波 譯 為了克服自己走馬觀花,提高閱讀和學習效率,決定將自己在讀書過程中遇到的一些知識點加以摘抄和總結備忘,在此感謝原書作者和翻譯。一 陣列名 1 乙個誤區 陣列名並不表示整個陣列,它大多時候只是乙個指標常量,指向陣列的第乙個元素...