您的位置:首页 > 其它

12月11号 结构体 + typedef

2015-12-13 14:01 357 查看
简单结构体

struct student{

  char name[20]; //可以用scanf或者直接赋值

    *如果用char *name 在用scanf时没有内存接收

  long id;

  int age;

  float height;

};

结构体中只能声明变量不能赋初值。

struck student zhangsan;

struck student zhangsan = {"xiaowang",2000002,20,180.5};

结构体的访问用".":xiaowang.name

typedef 类型重定义 给一个已经存在的类型取一个别名

typedef struct student{

  char name[20]; //不能用char *name 在用scanf时没有内存接收

  long id;

  int age;

  float height;

}Student;//Student是一个类型

Student zhangsan;

Student zhangsan = {"xiaowang",2000002,20,180.5};

如果不加typedef:

struct student{

  char name[20]; //不能用char *name 在用scanf时没有内存接收

  long id;

  int age;

  float height;

}Student;//Student 是一个变量了

结构体指针

Student *s;

如果*name是字符串 s->name = "xiaowang";

如果name[]是数组接收 strcpy(s->name,"xiaowang");

s->age = 23;

Student *s[5]; //每一块都存着结构体的地址

Student xw ={"xiaowang",2345,23,164.3};

s[0] =&xw; //结构体指针数组里面的每一个都存着地址,如果不给他内存地址,它的值就为空,不可直接赋值。

s[0]->age = 20;

结构体数组

Student array[5] ={};

strcpy(array[0].name,"xiaowang");

array[0].age = 23;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: