4.4 结构体

22:43

4.4.1 结构体简介

结构体是用户定义的类型,而结构声明定义了这种类型的数据属性;定义了类型后,就能创造这种类型的变量;

因此创造结构包括两步:

  1. 定义结构描述——描述并标记能够储存在结构中的各种数据类型;
  2. 按描述创建结构变量(结构数据对象);

eg: struct seqlist  //struct 声明,定义了一个结构的布局,标识符seqlist是这种数据格式的名称,创造                                          

{ int*p;          //seqlist类型的变量

 int size;

 int capacity; //其中每一项都是结构成员

}; //结束结构声明;

C语言中创造变量——struct seqlist sq1;

C++中——seqlist sq2;

由于sq2的类型为seqlist,可以用成员运算符(.来访问各个成员,eg:sq2.size;

结构声明的位置很重要,若在main()函数里,则放在最开头,作用域仅限于main()函数;若声明放在外面,则可被所有函数使用

4.4.2 结构体初始化

与数组一样,C++11也支持将列表初始化用于结构,且等号(=)是可选的:

seqlist sq1 {NULL,4,8};或者seqlist sq1={NULL,4,8};

其次,如果大括号未包含任何东西,各个成员将会被设置成零,若成员有数组,则每个字节都被设置成零: seqlist  sq1 {};

最后,不允许缩窄转换;

补充:string类也可以作为结构成员,前提是包含头文件<string>

4.4.3 其他结构属性

  1. 结构赋值

结构变量可以通过赋值运算符(=)将结构赋给另一个同类型的结构

eg:  struct student

  { char name[10];

    int  age;

  }st1,st2;

st1{"dt",19};

st2=st1;

  1. 结构声明与创建变量

结构可以在声明的同时创建变量并赋值

eg:  struct student

  { char name[10];

    int  age;

  }st1{"dt",19},st2;

st2=st1;

  1. 还可以声明没有名称的结构体变量

eg: struct

 { int x;

   int y;

 }position;//这样将创建一个名为position的结构变量。可以用成员运算符来访问它的成员,但因为该类型没有名称,之后无法创建该类型的结构变量;

4.4.4 结构数组

可以创建元素为结构的数组。方法和创建基本类型的数组想同;eg:students st[10];

这样st将是一个students数组,st[0]~st[9]都是students对象,都可以与成员运算符一起使用

eg:cin>>st[0].name; cout<<st[9].age;

重点:st本身是一个数组,像st.name这样的表述是无效的;

初始化: eg:students st[2]={ {dt,18} , {jay,19}  }//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值