2012-01-18 67 views
2
struct _Structure{ 
    int member; 
}; 

結構指針結構指針實現方法

指針結構

有上述2短語

在我看來有什麼區別,兩者的短語代表着不同的指針實例

Structure Pointe [R

typedef struct _Structure *SP; 

SP sp; 

指針結構

typedef struct _Structure PS; 

PS *ps; 

雖然關於_Structure的數據成員訪問均具有相同的代碼剪斷

sp->member; 
    AND 
ps->member 

如果這兩個短語是SAME,OK NOPS!

此外這一點,我們爲什麼需要

typedef struct _Structure *SP; 

SP *sp; 

//note: here 'sp' is like double pointer 

感謝, 阿米特

+1

你究竟在問什麼? – 2012-01-18 11:36:46

回答

0

有兩個表達式結構指針指針沒有區別構建

並且spps變量之間沒有區別。兩者都是指向結構的指針。在typedef或變量聲明中使用*沒有區別。

1

如果您擴大typedefs,則spps的類型都是struct _Structure *。在這方面,它們之間絕對沒有區別。

顯然,typedefs本身(SPPS)具有不同的語義,因爲一個是指針,另一個不是。

在最後一個例子,sp不是雙,它雙指針。雙指針在某些情況下很有用,但比單指針使用頻率低。

0

沒有區別,更在在

typedef struct _Structure *SP; 

SP *sp; 

//note: here 'sp' is like double pointer 

你不需要這個。如果你這樣做,你只會有一個指針指向你所說的指針。

0

在我看來,這兩個短語是等價的。兩者都需要實現struct。這只是一個編程偏好,它指向一個指針並聲明它或聲明一個指向struct的指針。