C語言筆記-指標(7) *號帶來的錯亂
指標的具體涵義取決於生明的方式:
int *i;
*i是個整數,所以透過int *i把*i聲名為整數
下列舉出聲名中的*i與聲名外的*i涵義不同:
此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝
int *i;
*i是個整數,所以透過int *i把*i聲名為整數
下列舉出聲名中的*i與聲名外的*i涵義不同:
- int *i=malloc(sizeof(int)); //正確
- *i=23; //正確
- int *i=23; //錯誤
簡單的說就是:
- 當用於聲明時,星號表示指標
- 不用於聲明時,星號表示指標的值
- int i=10;
- int*j=&i;
- int *k=j;
- *j=100;
第二行是對的,因為*j是一個聲明,因此表示指標
第三行 *k是一個聲名指標,把他賦值給j是合法的
第四行,*j不在聲明中,因此他表示一個普通整數,然後把100賦值給它(i 也會隨之改變)
結論:
在聲明中看到*i,表示他是只向某個對向的指標
在非聲明中看到*i,他是指標所指向的值
此文章內容參考"21 century c"一書,在此做筆記
如須刪除請告知 謝謝