C 指向结构体数组的指针
在接下来的时间里面,我们准备为大家介绍"指向结构体数组的指针"。
(1)指向结构体数组的指针,就是我们分别定义一个结构体数组,与一个结构体指针,
然后,将(结构体数组)赋值给(结构体指针),这样,就是指向结构体数组的指针了。
(2)
例子:
struct ST
{
int a;
float b;
char c;
}a[ 2 ]={ {1,2.5,‘t’} ,{3,1.5,'k'} }; //定义了结构体的数组a
struct student *p; //定义了结构体的指针p;
p = a; //将(结构体数组a)赋给(结构体指针p ),
这样,p 就是指向结构体数组的指针。
同时,p 中的值是结构体数组 a 的内存起始地址,
从下面的表格可以看到是1000。
p = p + 1 //p+1等于内存地址1000+1等于1001,再赋值给p,
所以,p指向内存地址1001。
float f = p->b; //通过指针变量 p 调用成员b,首先,p中的内存地址是1001,
通过下面的表格可以看到内存地址1001是对应a[1],
所以,就是调用a[1]中的成员b,
即获取1.5。
结构体数组a | 内存地址 | 变量值 |
a[0] | 1000 | 1 |
2.5 | ||
't' | ||
a[1] | 1001 | 3 |
1.5 | ||
'k' |
成员名 |
---|
a |
b |
c |
a |
b |
c |
小结:
(1)当指针变量指向一个结构体数组时,可以通过改变(指针变量)中的值来指向数组中
不同下标的元素。
(2)不管结构体中有多少个成员,当指针变量中的值加1就会指向数组中下一个元素,如果是
减1则指向数组中前一个元素。
非常好,现在,我们已经掌握了C中的“指向结构体数组的指针”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)