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
    2.5
    't'
a[1] 1001 3
    1.5
    'k'
   成员名
      a
      b
      c
      a
      b
      c

 

 

 

  小结:

  (1)当指针变量指向一个结构体数组时,可以通过改变(指针变量)中的值来指向数组中

     不同下标的元素。

  (2)不管结构体中有多少个成员,当指针变量中的值加1就会指向数组中下一个元素,如果是

     减1则指向数组中前一个元素。

 

 

 

   非常好,现在,我们已经掌握了C中的“指向结构体数组的指针”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用该知识点去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

      不要停留在理论规则上面,快动起来吧!

 

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练