内容正文:
非基本数据类型
在第2章中介绍了C++的基本数据类型,如整型、浮点型、字符型等。在很多情况下,基本数据类型并不能满足程序开发的需要。为此,C++引入了非基本数据类型(又称复合类型),包括结构体类型、联合体类型和枚举类型等。
目录
第6章
C++程序设计案例教程
6.1 结构体类型
Add your text in here
Click to add Text
使用学生结构体
案例引入
构造一个结构体类型Student,使用该结构体分别声明变量和数组,并进行初始化,然后输出结构体中的成员。
目录
第6章
C++程序设计案例教程
6.1 结构体类型
源代码展示
#include "stdafx.h"
#include <iostream.h>
struct Student //定义结构体
{
char name[20]; //姓名
int stuNo; //学号
int age; //年龄
char sex[3]; //性别
};
int main(int argc, char* argv[])
{
//定义结构体类型变量,并进行初始化
struct Student stu1={"李四",110101,20,"男"};
struct Student *p; //定义结构体指针
p=&stu1;
cout<<"使用结构体变量输出姓名:"<<stu1.name<<endl;
cout<<"使用结构体指针输出姓名:"<<p->name<<endl;
//定义结构体数组stu2,并进行初始化
struct Student stu2[2]={{"李四",110101,20,"男"},
{"张三",110102,21,"男"}};
cout<<"姓名 "<<"学号 "<<"年龄 "<<"性别 "<<endl;
for(int i=0;i<2;i++)
{
cout<<stu2[i].name<<" "<<stu2[i].stuNo<<" "
<<stu2[i].age<<" "<<stu2[i].sex<<" "<<endl;
}
return 0;
}
目录
第6章
C++程序设计案例教程
6.1 结构体类型
运行结果
程序分析
上述程序首先定义了学生结构体Student,其中包含4个成员变量,又定义了一个该结构体的变量stu1和指向该结构体的指针p,并对它们进行初始化,然后分别使用结构体变量stu1和指针p引用结构体成员(输出学生姓名)。
程序最后还定义了一个结构体数组stu2,进行了初始化,并通过for循环语句将其中的元素输出。
目录
第6章
C++程序设计案例教程
知识讲解
结构体概述
如果一组数据具有不同的数据类型,如学生的基本信息、姓名为字符型,学号为整型或字符型,年龄为整型,性别为字符型等,则这组数据不能存放在数组中。该如何存储这组数据呢?答案是使用结构体。
在C++中,使用关键字struct来定义结构体,其语法格式如下:
struct 结构体标识符
{
成员变量列表
…
};
定义结构体
目录
第6章
C++程序设计案例教程
知识讲解
常用的声明方法有以下两种。
(1)先定义结构体类型,再单独进行变量声明。示例程序中声明的结构体变量stu1就属于这种方法。
(2)在定义结构体类型同时声明结构体变量。使用这种方法声明结构体变量,只需将示例程序中的代码稍作修改,如下所示:
struct Student //定义结构体
{
char name[20]; //姓名
int stuNo; //学号
int age; //年龄
char sex[3]; //性别
} stu1;
声明结构体变量
目录
第6章
C++程序设计案例教程
知识讲解
4)
根据结构体变量声明方法的不同,初始化的形式也有多种。
5)
在C++中,提供了三种形式来引用结构体中的成员:
(1)结构体变量名.成员名;
(2)指针变量名->成员名;
(3)(*指针变量名).成员名。
6)
如果声明一个指针变量,并让其指向一个结构体数据类型,那么称该指针为结构体指针 。
结构体变量的初始化
引用结构体成员
结构体指针
目录
第6章
C++程序设计案例教程
6.2 联合体结构
Add your text in here
Click to add Text
使用学生联合体
案例引入
构造一个联合体类型Student,并声明该类型的变量和指针。从键盘输入数据,给该联合体变