int *f(); //乙個返回值為int* 的函式
int (*f)(); //乙個函式指標,指向乙個返回型別為int的並且無引數的函式
const int n=12;
int *a[n]; //首先,提醒這段**在c中不行。 這個是乙個具有n個int * 元素的陣列
int (*a)[n]; //乙個指標,指向乙個具有n個int元素的陣列。
int(**p)[n]; //乙個指標,指向乙個指標,後者指向乙個具有n哥int元素的陣列
int *(*p)[n]; //乙個指標,指向乙個具有n個int * 元素的陣列
int (**const p)()const =0; //乙個常量指標,指向乙個指向函式的指標。
int* (*p)(); //乙個指標,指向乙個返回型別為int* 的函式。
引數和返回值都會影響指標的型別:
char *(*p1)(int ,int);
char *(*p2)(short,short)=0;
p1=p2; //error 型別不匹配
智慧型指標通過過載->和* (也可能還有->*)操作符,來模仿指標的行為。
函式物件型別通過過載()操作符,來創造類似於函式指標的東西。
在c++中,乙個物件可以喲多個有效的位址,因此指標的比較不是關於位址的問題,而是關於物件的「同一性」的問題。
C 必知必會讀書筆記
在物件導向設計中,不知情 和 忽略 也是一種天賜之福。實際上體現的就是一種松耦合,不需要執行 期的實際型別 動態型別 的精確知識。這就是不知情和松耦合的優點。p101頁。c 中的new有三種形態,一種是最常見的 new運算子,也就是用來在堆上分配記憶體,然後呼叫建構函式的那個。一種是operator...
《MySQL必知必會》讀書筆記 4
ps 乙個實際的儲存過程案例 create definer root localhost procedure sp delete article by id in id int begin routine body goes here.declare temp int set aid id sele...
《C 必知必會》讀書筆記(上)
1 資料抽象 1 首先,為型別取乙個描述性的名字。如果很難為這個型別命名,那就說明我們還不知道要實現什麼。因此,我們需要多開動腦筋,結合業務邏輯,給即將產生的類乙個好的合適的職責。這就是設計過程。乙個抽象資料型別應該表示乙個單一的 明確的概念,而且為該概念所取的名字應該是顯而易見的。2 其次,列出型...