由於工作需要轉成了c#,好久沒有學c++了,之前學了一段時間的c++,也寫過兩篇,放在部落格園裡的,現在有專門的c++部落格,以後就在這裡寫了。以下是前兩篇的位址
c++之父力作學習筆記1 c++之父力作學習筆記
今天來簡單說一下指標,可以說指標是乙個難點,是一把雙刃劍,也許高手才能運用自如,像我這樣的菜鳥就會傷到自己。呵呵,廢話少說。
指標:對型別t,t*是「到t的指標」,也就是說,乙個型別為t*的變數能儲存乙個型別t的物件的位址。例如: char c='a';
char *p=&c;//p儲存著c的位址
用圖表示是:
這些都挺容易理解的,不幸的是,到陣列的指標和到函式的指標需要更複雜的記法: int* pi; //到int的指標
char** ppc; //到字元的指標的指標
int* ap[10]; //10個到int的指標的陣列
int (*fp)(char*); //到函式的指標,這種函式以char*為引數,返回int
int* f(char*); //有乙個char*引數的函式,返回乙個到ini的指標
對指標的基本操作是間接引用,也就是說引用被指標所指的那個物件。這一操作也被稱作間接(indirectionn)。間接運算子是(字首的)一元*。例如 char c='a';
char* p=&c; //p儲存著c的位址
char c2=*p; //c2=='a'被p所指的變數是c,而c中所存的值是'a'。所以由*p賦給c2的值就是'a'.
注意:這裡解釋一下 間接運算子是(字首的)一元*。這就要扯到宣告的結構了。
乙個宣告由四個部分組成:乙個可選的「描述符」,乙個基礎型別,乙個宣告符,還有乙個可選的初始式。除了函式和名字空間之外,其他宣告都應該由分號結束。例如: char* kings=;這裡的基礎型別是char,宣告符是*kings,而初始化是=。
描述符是乙個開始關鍵字,例如:virtual和extern,它們說明了被宣告事物的某些非型別的屬性。
宣告符由乙個名字和可選的若干宣告運算子組成。最常用的宣告運算子是
* 指標 字首
*const 常量指標 字首
& 引用 字首
陣列 字尾
() 函式 字尾
C 學習筆記4 指標
1.什麼是指標?指標是乙個變數,其值為另乙個變數的位址,即,記憶體位置的直接位址。在使用指標儲存其他變數位址之前,對其進行宣告。指標變數宣告的一般形式為 type var name type 是指標的基型別,它必須是乙個有效的 c 資料型別,var name 是指標變數的名稱。星號是用來指定乙個變數...
C語言(九) 指標(3)指標與const
表示一旦得到了某個變數的位址,不能再指向其他變數 int i 0 int const q i q是 const q 20 ok q error表示不能通過指標去修改這個變數 int i 0 int j const int p i const int p 等同於 int const p p 20 er...
C 學習筆記 四 指標 4
類成員指標 本文主要討論 c 中類成員的指標,這部分內容少有使用,也比較難於理解。如果文中有錯誤或遺漏之處,敬請指出,謝謝!需要使用類成員指標的情況是比較少見的,所以一般沒人使用這個語言特性。下面先介紹類成員指標的使用方法,再介紹它的可能應用場合。有時,我們需要在類外的其它地方直接獲得類成員,這時我...