指向结构体数组在C语言的指针
提问人:杨紫红发布时间:2020-11-17
例如:指向结构体数组的指针的应用。
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},\
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) 上述运算符具有相同的运算优先级和结合性;
(2) ++p->num的执行效果等价于: ++(p->num);
(3) (+ +p)->num的执行效果是:先执行p=p+1, 然后再执行p->num(注意p的值已经改变);
(4)(p+ +)->num的执行效果是:先存取p->num,然后再执行p=p+1;
(5) p+ +->num的执行效果同( p + +)->num;
与定义指向普通数组的指针一样,C语言允许定义指向结构数组的指针。如果p是指向结构数组的指针,那么p将指向该结构数组的起始地址(第0个元素的地址)、p+1将指向这个结构数组的第一个元素的地址、p+2将指向该结构数组的第三个元素的地址、…,依此类推。
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>