“學電腦一定要有一個非常強大的心理狀態,電腦不是黑魔法,都是人想出來的,別人能夠想的出來,那麼,總有一天,我也能夠想的出來。” 指針類型的變數就是保存地址的變數。 int* p=&i;------P是一個指針,P裡面的內容為變數i的地址,即說P指向了i; int* p,q;------註意:*號... ...
- “學電腦一定要有一個非常強大的心理狀態,電腦不是黑魔法,都是人想出來的,別人能夠想的出來,那麼,總有一天,我也能夠想的出來。”
- 指針類型的變數就是保存地址的變數。
- int* p=&i;------P是一個指針,P裡面的內容為變數i的地址,即說P指向了i;
- int* p,q;------註意:*號僅僅加給了p,即語句意思為p為指針,而q為普通的整數類型;(c語言中無int* 這個類型)
- %P:指針類型格式;
- 運算符*:單目運算符,用來訪問指針的值所表示的地址上的變數;即地址+*=變數的值;此時變數的值*i可以用來做左值和右值;
- 區別:僅僅傳遞值得時候,傳遞得只是錶面的參數值的大小,地址值上的變數的值並未改變;而使用*號運算符之後,則被賦予了訪問的能力,即讀和寫的能力,此時可以改變地址所在的地方上的變數的值。
- 函數參數表裡面的數組,實質為指針,即數組的地址值;
- 等價的四種函數原型:
int sum(int *ar);
int sum(int *);
int sum(int ar[]);
int sum(int []);
- 數組變數是特殊的指針,即&a[0],a可以表示地址;但是數組的單元表示的是變數,即a[0],a[1],a[2]等表示變數;
- []運算符可以對指針做,也可以對數組做;
- *運算符可以對指針做,也可以對數組做;
- int b[];--->int *const b;即數組變數不可以被賦值,數組是一個不可改變的指針;
- 例:
- int a[] = {5, 15, 34, 54, 14, 2, 52, 72};
- int *p = &a[5];
- 則p[-2]為54;
- 即[]運算符可以對指針做;
- char是一種整數,也是一種特殊的類型:字元;
- 用單引號‘ ‘表示字元的字面量:’a‘,’1‘;即ASCLL碼表中的量值;例:’1‘==49;
- ’‘也是一個字元;
- %c用來輸入輸出字元;