您的位置:首页 > 编程语言 > C语言/C++

初学c/c++——定义结构体(struct)

2016-08-09 09:49 447 查看
假设,当我要输入大量的学生信息时,我定义或者不定义结构体都是一样的,但是,当我查询学生信息时,结构体的定义会让我方便很多。

例子:

格式:

  struct list

  {

   int id;

   char name[12];

   char phone[12];

  };

初始化:

  list a=

  {

   201608,

   “tuier”,

   “12345”

  };

或者

  list a[2]=

  {

   {2016,”tuier”,”12345”},

   {2017,”zhangsan”,”1234567”}

  };

使用:

与基本的类型差不多,

list a;

list a;

list* a=&b;

void test(list a);

[b]访问:


格式为:

   list.id=201607;

若是用p指针指向list的话:

  则用 p->id 表示

或者

  (*p).id (一般不用这种)

  p[0].id

赋值:

a.id = 2016;

strcpy(a.name , “tuier”);  (属于”string.h”库)

注意事项:

1) 结构体默认只支持=,不支持其他运算,加减乘除…

2) 可以把结构体的类型定义写在main()里,但是尽量不要,因为自定义结构体,目的还是想重复使用吧,写在函数内部无法重用。

3) c与c++是有区别的,在c中,定义变量时也要加struct,比如: struct list a;

知识点摘要:

1.结构体的大小,是有对齐问题的,为了实现对齐,编译器会对结构体进行填充(注意,c/c++标准里没有规定一定要对齐,是编译器的行为),我要提醒的是,结构体对齐是十分重要的机制,没有任何理由取消对齐。

2.结构体是可以作为别的结构体的成员定义的,只要前后顺序注意。

3.结构体作为参数时,尽量传引用,因为当结构体的体积较大时,占的内存空间较多,就不用传值了,较耗内存和CPU。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: