位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

指向结构体数组在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},\

                         {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)
返回顶部