A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 大悟云 中级黑马   /  2014-11-16 18:51  /  716 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

 指针指向结构体:
  1.     p -> n 得到 p 指向的结构体变量中的成员 n 的值
  2.     p -> n ++ 得到 p 指向的结构体变量中的成员 n 的值,用完值后使它加1
  3.   ++p -> n 得到 p 指向的结构体变量中的成员 n 的值使之加 1 (先加)


  struct student stu[3] = {{10101, "Li Lin", 'M', 18},

             {10102, "Zhang Fun", 'M', 19},

             {10103, "Wang Min", 'F', 20}};
    void 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);

}

       如果 p 的初值为 stu,即指向第一个元素,则 p + 1 后指向下一个元素的起始地址。例如:
       (++p) -> num 先使 p 自加 1 ,然后得到它指向的元素中的 num 成员的值(10102),得到的值是10102,指向的也是stu[1]
      (p++) ->num 先得到 p->num 的值(10101),然后使 p 自加 1 ,指向 stu[1],得到的是stu[0]的值,指向的是stu[1]]中的成员


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马