close

指標(pointer)

就字面上來理解,指標就是箭頭
在C語言裡也差不多是那個意思,C語言稱作"中階語言"正是因為它很接近硬體
可以直接操作硬體,指標就是操作記憶體
那到底跟箭頭有甚麼關係呢?
每個變數都要存到記憶體裡面,每個記憶體都有一個編號
就跟地址一樣,也就是說我告訴你那個地址,你就可以找到那個變數
位址→變數(所以有箭頭的感覺)

& 與 * 運算子

 

&


在變數前面加&就是取得變數的位址
還記得輸入函數Scanf("%d",&a);?後面就是取得變數的位址

 

*


在位址前面加*就會取得那個變數
這時候對這個變數操作會完全跟原始變數同步
也就是說*位址=999;那原本的變數同時也被改了

所以其實這兩個運算子是反運算

範例 反運算

#include <stdio.h>
int main()
{
    int c=100;
     *&c=101;//c的位址經過*再對照到c把c指派成101
    printf("%d",c);
    return 0;
}

 

 

宣告指標變數 
 

變數類型* 變數名稱

範例

#include <stdio.h>
int main()
{
    int c=100;
    int*a;//宣告指向int的指標
  return 0;
}

變數類型* 變數名稱=初始位址(&變數)

範例

#include <stdio.h>
int main()
{
    int c=100;
    int*a=&c;//初始化成c的位址
  return 0;
}
arrow
arrow
    文章標籤
    C語言 教學 指標 pointer
    全站熱搜

    繩繩 發表在 痞客邦 留言(0) 人氣()