int iTest[10] = {0};
int *pIt;
pIt = iTest;
*pIt = 3;
pIt = &iTest[3];
*pIt = 4;
pIt[1] = 5;
typedef struct {
int a;
int b;
}strTest;
strTest myStruTst[10];
strTest *pStruT;
pStruT = myStruTst;
pStruT->b = 1;
pStruT->a = 2;
pStruT = &myStruTst[3];
pStruT->b = 3;
pStruT->a = 4;
通过结构体指针可以获取结构体成员,一般形式为:
(*pointer).memberName
或者:
pointer->memberName
第一种写法中,.
的优先级高于*
,(*pointer)
两边的括号不能少。如果去掉括号写作*pointer.memberName
,那么就等效于*(pointer.memberName)
,这样意义就完全不对了。
第二种写法中,->
是一个新的运算符,习惯称它为“箭头”,有了它,可以通过结构体指针直接取得结构体成员;这也是->
在C语言中的唯一用途。