首先,我不認爲下面的代碼是什麼你認爲它是:
struct T {
int *baseofint
}Tstruct, *pTstruct;
int one;
pTstruct pointer;
你聲明的結構類型struct T
,並創建一個實例它稱爲Tstruct
和指針它叫做pTstruct
。但那些不是你創建的類型,而是變量。這使得pTstruct pointer;
無效的代碼了。你可能是打算是一個typedef:
typedef struct T {
int *baseofint;
} Tstruct, *pTstruct;
...使Tstruct
相當於struct T
,並pTstruct
相當於struct T *
。
用於訪問和取消引用baseofint
場,這是稍有不同,這取決於您是否正在通過指針或不訪問...但這裏是如何:
Tstruct ts; // a Tstruct instance
pTstruct pts = &ts; // a pTstruct -- being pointed at ts
/* ...some code that points ts.baseofint at
* an int or array of int goes here... */
/* with * operator... */
int one = *(ts.baseofint); // via struct, eg. a Tstruct
int oneb = *(pts->baseofint); // via pointer, eg. a pTstruct
/* with array brackets... */
int onec = ts.baseofint[0]; // via Tstruct
int oned = pts->baseofint[0]; // via pTstruct