文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>struct复习

struct复习

时间:2010-03-06  来源:y307921462

今天又在一个地方发生错误了,C语言的东西,现在复习下  

#include<stdio.h>
int main()
{
  struct student
  {
    int number;
    char name[20];
    char sex;
    int age;
    char addr[30];
  };
  struct stu1{
    int num;
    char name;
    struct student;
  }py[2];
 
  struct student s[3] = { {10000,"Zhang",'m',21,"Shang Hai"},
    {10001,"Li",'f',20,"Bei Jing"},
    {10002,"Liu",'m',22,"Guang Dong"} };
    
    struct student *p;
//定义结构体指针,其指向结构体的首地址,需要注意的是其没有成员,故不可以直接引用student里面的成员,这是我经常发生的错误,切忌

    printf("number%d\n",p->addr);//此处错误,还未获得成员
   for(p=s; p<s+3; p++)
      printf("%d,%s,%c,%d,%s\n",p->number,p->name,p->sex,p->age,p->addr); 

    printf("number_add%d\n",p->addr) ;//正确,已经指向了定义了的结构体首部,可以引用成员了!
    return 0;
}


想要再次提醒一下自己,struct student *p;是声名一个结构体指针,只是一个指针,指向一个结构为student的结构体,里面还没有成员,故不能引用里面的成员,否则将会出现段错误的执行错误,并且这种错误在编译的时候不会有问题,执行程序时才会出现错误。

以前经常会犯这样的错误,定义一个 结构体指针struct student *p;然后直接引用里面的成员,编译时候没错,执行时就发飙了,切忌切忌!

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载