指向結(jié)構(gòu)體數(shù)組在C語(yǔ)言的指針
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);
}
對(duì)“->”、“.”、“[ ]”、“()”的進(jìn)一步說明
(1) 上述運(yùn)算符具有相同的運(yùn)算優(yōu)先級(jí)和結(jié)合性;
(2) ++p->num的執(zhí)行效果等價(jià)于: ++(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語(yǔ)言允許定義指向結(jié)構(gòu)數(shù)組的指針。如果p是指向結(jié)構(gòu)數(shù)組的指針,那么p將指向該結(jié)構(gòu)數(shù)組的起始地址(第0個(gè)元素的地址)、p+1將指向這個(gè)結(jié)構(gòu)數(shù)組的第一個(gè)元素的地址、p+2將指向該結(jié)構(gòu)數(shù)組的第三個(gè)元素的地址、…,依此類推。
點(diǎn)擊加載更多評(píng)論>>