1. 程式人生 > >指標的點運算和箭頭運算(->)

指標的點運算和箭頭運算(->)

指標的點運算和箭頭運算(->)

(其實點運算是結構體變數訪問其成員的操作符

    箭頭運算是結構體指標訪問其指向的成員變數的操作符

突然發現指標的兩個運算子我是不太清楚的,就翻書搞了下:其實點運算和箭頭運算都可以當作訪問指標所指向的 結構體或者類物件的成員是用的操作符。比如:

struct song

{

int a;

}

有這樣一個結構體,定義:

song s;

s.a=1;

song *p;

p=&s;

那麼要訪問指標p所指向的記憶體:

(*)p.a  和  p->a 是等價的 

PS:

1.點運算比*運算優先順序高,故如果用  .  運算,括號不可省。因為(*)p是指標怕指向的結構體變數,故可以用點運算來訪問其成員

2.而箭頭運算只能指標用,比如 聲名 int *p

p是指標,*p就是p所指向的一個int 變數的記憶體

另外附一篇blog參考

http://blog.csdn.net/taric_ma/article/details/7397362