1.陣列名的值是乙個指標常量,也就是陣列第1個元素的位址,它的型別取決於陣列元素的型別。記住是指標常量。
2陣列具有確定數量的元素,指標只是乙個標量值。只有當陣列名在表示式中使用時,編譯器才為它產生乙個指標常量。
在程式完成鏈結之後,記憶體中陣列的位置是固定的。
3.你不能使用賦值符把乙個陣列的所有元素複製到另外乙個陣列,必須使用乙個迴圈。
4.陣列下標不會比指標更有效率,但指標有事會比下標更有效率。
5.形參被宣告為乙個指向const字元的指標。具有良好的閱讀習慣,僅觀察函式的原型就能發現該資料不會修改,編譯器可以捕捉到試圖修改該資料的錯誤,這類宣告允許向函式傳遞const引數。
6.宣告陣列引數時最好使用指標。
7陣列元素的不完整初始化,後面被初始化為0.
8.int vector【】=;
可以自動計算陣列長度。
9用''表示字元。
10「hello」當用於初始化乙個字元陣列時,它就是乙個初始化列表,在其他地方,它都表示乙個字串常量。
11.宣告乙個指向整型陣列的指標
int (*p)[10];
下標優先順序高於解引用,但是括號高於下標。所以先執行間接訪問,p還是乙個指標。但是指向什麼?所以p是指向某種型別的陣列。
對p執行間接訪問操作得到的是個陣列,對陣列進行下標引用操作得到的是乙個整型值。所以p是乙個執行整型陣列的指標。
12指標陣列
int *api[10]
先執行小標引用,因此api是某種型別的陣列。然後執行間接訪問操作,對陣列的某個元素執行間接訪問之後,是乙個整形值。所以api肯定是乙個陣列。
元素型別是指向整形的指標。
13.char const *keyword_table
keyword_table是乙個陣列。型別是執行char的指標。
其中keyword_talbe是指向這個陣列的。
要想kwp=keyword_table
必須要這樣定義 char const ** kwp,對kwp解引用之後,是乙個只需向char型的指標。再次解引用之後是char型別。
12.多維陣列a[3][8]相當於a【】其中a有8個,等等。
13.陣列形參可以宣告為陣列,也可以宣告為指標。這兩種宣告形式只有當他們作為函式的形參時才是相等的。
14.int a;
int *p
其中陣列 的&a 和a 和&a[0]其實是乙個意思
《C和指標》讀書筆記 8
宣告 該讀書筆記摘抄自 c和指標 kenneth a.reek 著 徐波 譯 為了克服自己走馬觀花,提高閱讀和學習效率,決定將自己在讀書過程中遇到的一些知識點加以摘抄和總結備忘,在此感謝原書作者和翻譯。一 字串長度 1 標準庫函式 size t strlen char const string 標頭...
C和指標讀書筆記 第3章(資料)
1.長整型至少和整型一樣長,而整型至少和短整型一樣長 char 乙個位元組 int 四個位元組 signed表示有符號數 unsigned表示無符號數,如果顯示的把變數宣告為signed和unsigned,可以提供程式的可移植性。2.如果乙個多位元組字元常量的前面有乙個l,那麼它就是寬字元常量。3....
C和指標讀書筆記 第7章(函式)
1.把函式的型別與函式名分寫成兩行純屬風格問題。這種寫法可以使我們在使用視覺或者某些工具追蹤 時更容易查詢程式。2.ruturn 語法並沒有要求你加上括號。3.向編譯器提供函式資訊的方法是使用函式原型。原型總結了函式定義的起始部分的宣告,向編譯器提供有關該函式應該如何呼叫的完整資訊。在函式原型後面要...