指向結構體數(shù)組在C語言的指針
struct student{ int num; char name[20]; char sex;
int age;};
struct student stu[3]={{10101,”Li Lin”,’M’,18},\
{10102,”Zhang Fun”,’M’,19},\
{10104,”Wang Min”,’F’,20}};
main( )
{ struct student *p;
for(p=stu; p<stu+3; p++)
printf(“%5d%-20s%2c%4d\n”,p->num,p->name, p->sex,p->age);
}
對“->”、“.”、“[ ]”、“()”的進一步說明
(1) 上述運算符具有相同的運算優(yōu)先級和結合性;
(2) ++p->num的執(zhí)行效果等價于: ++(p->num);
(3) (+ +p)->num的執(zhí)行效果是:先執(zhí)行p=p+1, 然后再執(zhí)行p->num(注意p的值已經(jīng)改變);
(4)(p+ +)->num的執(zhí)行效果是:先存取p->num,然后再執(zhí)行p=p+1;
(5) p+ +->num的執(zhí)行效果同( p + +)->num;
與定義指向普通數(shù)組的指針一樣,C語言允許定義指向結構數(shù)組的指針。如果p是指向結構數(shù)組的指針,那么p將指向該結構數(shù)組的起始地址(第0個元素的地址)、p+1將指向這個結構數(shù)組的第一個元素的地址、p+2將指向該結構數(shù)組的第三個元素的地址、…,依此類推。
點擊加載更多評論>>