1.void 可以定義變數
void *p;//p的型別為void *, 而void *指標型別,32為平台4位元組
//p叫萬能指標 p可以儲存 任意一級指標
char ch;
p = &ch;//型別:char *
int num;
p = #//型別:int *
float f;
p = &f;//型別:flaot *
*p操作,需對p進行強制型別轉換
void test01()
2、不要對 沒有初始化的 指標變數 取*
int *p;
printf("*p=%d\n",*p);
//因為p沒有初始化 內容隨機 也就是p指向了乙個未知空間 系統不允許使用者 取值*p操作
3、不要對 初始化為null的指標變數 取*
//null 就是(void *)0 位址,也是記憶體的起始位址 受系統保護#define null ((void *)0)
int *p=null;
printf("*p = %d\n", *p);//也不能 *p
4、不要給 指標變數 賦普通的數值。
int *p = 1000;//此時的1000對於p來說 是位址編號 1000
//*p表示在位址編號為1000的位置 取值 ,而位址編號1000不是合法的空間 所以不能*p
printf("*p = %d\n", *p);//也不能 *p
5、指標變數不要操作越界的空間。
char num=10;
int *p = #
//num只佔1b空間 而p的指向型別為int 所以*p取值寬度為4b,所以越界3b
printf("*p =%d\n",*p);//操作非法空間
void test02()
C語言複習 指標2
1.指向函式的指標 在 語言中,乙個函式總是占用一段連續的記憶體區,而函式名就是該函式所佔記憶體區的 首位址。我們可以把函式的這個首位址 或稱入口位址 賦予乙個指標變數,使該指標變數指 向該函式。然後通過指標變數就可以找到並呼叫這個函式。我們把這種指向函式的指標變數 稱為 函式指標變數 函式指標變數...
c 智慧型指標複習筆記
shared ptr 變數出了作用域之後智慧型指標會析構,引用計數 1,直到為0時銷毀物件,呼叫物件的析構函式,哪怕是出現了異常。weak ptr解決迴圈引用問題 unique ptr它不允許其他的智慧型指標共享其內部的指標,不允許通過賦值將乙個unique ptr賦值給另乙個unique ptr ...
C 學習筆記 指標2
關於指標形參的注意事項 不要企圖通過改變指標形參的值而使指標實參的值改變,看下面的 include void swap int p1,int p2 int main int a 5,b 9 int pa,pb pa a pb b if a b swap pa,pb std cout a b 要想輸入...