前面只是指定了一种结构体类型,它相当于一个模型,但其中并无具体数据,系统也不为之分配实际的内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。 1. 定义结构体类型变量的方法 可以采取以下3种方法定义结构体类型的变量。 (1) 先声明结构体类型再定义变量名 如上面已定义了一个结构体类型Student,可以用它来定义结构体变量。如 Student student1, student2; 以上定义了student1和student2为结构体类型Student的变量,即它们具有Student类型的结构。如图7.2所示。
在定义了结构体变量后,系统会为之分配内存单元。例如student1和student2在内存中各占63个字节(4+20+1+4+4+30=63)。 (2) 在声明类型的同时定义变量 例如: struct Student //声明结构体类型Student { int num; char name[20]; char sex; int age; float score; char addr[30]; }student1,student2; //定义两个结构体类型Student的变量student1,student2 这种形式的定义的一般形式为 struct 结构体名 { 成员表列 }变量名表列; (3) 直接定义结构体类型变量 其一般形式为 struct //注意没有结构体类型名 { 成员表列 } 变量名表列; 这种方法虽然合法,但很少使用。提倡先定义类型后定义变量的第(1)种方法。在程序比较简单,结构体类型只在本文件中使用的情况下,也可以用第(2)种方法。 关于结构体类型,有几点要说明 (1) 不要误认为凡是结构体类型都有相同的结构。实际上,每一种结构体类型都有自己的结构,可以定义出许多种具体的结构体类型。 (2) 类型与变量是不同的概念,不要混淆。只能对结构体变量中的成员赋值,而不能对结构体类型赋值。在编译时,是不会为类型分配空间的,只为变量分配空间。 (3) 对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。关于对成员的引用方法见7.3节。 (4) 成员也可以是一个结构体变量。 如 struct Date //声明一个结构体类型Date { int month; int day; int year; }; struct Student //声明一个结构体类型Student { int num; char name[20]; char sex; int age; Date birthday; //Date是结构体类型,birthday是Date类型的成员 char addr[30]; }student1,student2; //定义student1和student2为结构体类型Student的变量 Student的结构见图7.3所示。 (5) 结构体中的成员名可以与程序中的变量名相同,但二者没有关系。例如,程序中可以另定义一个整型变量num,它与student中的num是两回事,互不影响。
正文
C++入门 7.1.2 结构体类型变量的定义方法及其初始化[续]2008-10-16 09:46:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/yzrj/38927.html
阅读(3102) | 评论(1)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论