C语言 指向结构体数组的指针
提问人:刘团圆发布时间:2020-12-02
当定义一个结构体指针变量指向一个结构体数组时,该指针指向的是结构体数组的首地址,即第一个数组元素的地址。例如:
struct student
{
int sno;
char sname[10];
int sage;
char depmt[20];
float cscore;
};
void main()
{
struct student s[3];
struct student *ps=s;
}
指针ps指向数组s的第一个元素。也可以写成:
struct student *ps=&s[0];
注意:
如果指针变量ps已指向某结构数组,则ps+1指向结构数组的下一个元素,而不是当前元素的下一个成员,如图所示。
(++ps)->sno的过程是先使ps加1,即如果ps指向的是s[0],则现在指向s[1],之后再得到它所指向的数组元素s[1]的成员sno的值。
(ps++)->sno则是先得到ps所指向的成员sno的值,然后使ps+1,指向下一个数组元素。
同样,ps++是使指针ps指向结构体数组的下一个元素。
继续查找其他问题的答案?
相关视频回答
回复(0)
点击加载更多评论>>