码迷,mamicode.com
首页 > 其他好文 > 详细

数据封装-结构体

时间:2017-05-20 21:55:04      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:方法   引用   指针的引用   值传递   初始化   span   构造函数   类型   c99   

结构体类型作用

*结构体类型允许程序员把一些分量聚合成一个整体,用一个变量表示。
*一个结构体的各个分量都有名字,把这些分量称为成员(member)。
*由于结构体的成员可以是各种类型的,程序员能创建适合于问题的数据集合。
 
结构体类型的定义
*定义结构体类型中包括哪些分量
*格式:
  struct 结构体类型名{
  字段声明;
  };
 
注意
*字段名可与程序中的变量名相同
*在不同的结构体中可以有相同的字段名
*结构体成员的类型可以是任意类型,当然也可以是结构体类型
 
结构体变量的初始化
studentT student1={“00001”,“张三”,87,90,77};
 
定义结构体类型的同时定义变量
struct 结构体类型名{                          struct{
  字段声明;                                     字段声明;
}结构体变量;                                     }结构体变量;
区别:前者可以继续用结构体类型名定义变量
 
结构体变量的赋值
同类型的结构变量之间可以相互赋值,如
student1=student2;
将student2的成员对应赋给student1的成员
这点很重要!!
 
指向结构体的指针
*直接定义指针变量

      studentT  *sp;

*也可以在定义结构体类型的同时定义指向结构体的指针

struct 结构体类型名{

     字段声明;

}  *结构体指针;

 

通过指针操作记录

*给结构体指针赋值,如:

     sp = &student1;

*结构体指针的引用:

(*指针).成员      如:(*sp).name

 指针->成员     如:sp->name

*->是所有运算符中优先级最高的

*通常程序员习惯使用第二种方法
 
动态分配结构体的空间
v指向结构体指针的另一种用法是存储动态申请到的内存的首地址。用法和申请普通的动态变量一样。如:

      studentT  *sp;

      sp = new studentT;

 

结构体数组

*用于描述个体的集合

*定义格式:

 studentT studentArray[SIZE]

 

指针与结构体数组

*与普通的指针一样,指向结构体的指针也能够用来指向一个结构体数组。此时,对指针加1就是加了该结构体的大小。
 
指向结构体的指针作为参数
*因为结构体是值传递,当希望把函数内部对结构体的修改返回给主调函数时,可以用指针传递或引用传递
*由于结构体一般占用的内存量都比较大,值传递既浪费空间又浪费时间。因此可用指针传递或引用传递
*指针传递形式比较繁琐,所以C++通常用引用传递
*引用传递的问题是函数中可以修改实际参数,要控制函数中不能修改实际参数,可以加const限定
引用传递&加const=节约内存,提高函数调用速度,安全可靠
 
函数返回结构体返回的是结构体的复制(对类而言也是如此,这样的话就会调用拷贝构造函数)

数据封装-结构体

标签:方法   引用   指针的引用   值传递   初始化   span   构造函数   类型   c99   

原文地址:http://www.cnblogs.com/codelearning/p/6883201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!