您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++结构数组与结构指针

时间:01-10来源:作者:点击数:

结构是一种数据类型,因此它也有对应的结构数组和指向结构的指针。

结构数组

定义结构数组和定义其他类型的数组在语法上并无差别。需要注意的是,在定义结构数组之前,我们必须先定义好这个结构。比如:

struct student
{
   int idNumber;
   char name[15];
   int age;
   char department[20];
   float gpa;
};
……
student S[3]={ {428004, "Tomato",20, "ComputerScience",84.5},
{428005, "OOTTMA",20, "ComputerScience",85.0},
{428006, "OTA",20, "ComputerScience",89.8}};
……

使用结构数组只要遵循结构和数组使用时的各项规则即可,在此不作赘述。

结构指针

在上一章我们了解到指针的一个重要作用就是实现内存的动态分配(堆内存)。待我们学完了这一章,我们会发现结构指针也是一个非常有用的工具。

所谓结构指针就是指向结构的指针。定义好一个结构之后,定义一个结构指针变量的语法格式为:
    结构类型名 *指针变量名;

我们知道一般的指针是通过间接引用操作符“*”来访问它指向的变量。那么我们如何访问结构指针所指向的变量的成员数据呢?这里要介绍箭头操作符“->”,我们用它可以访问到指针指向的变量的成员数据。它的格式为:
    指针变量名->成员数据

需要注意的是,箭头操作符的左边一定是一个结构指针,而成员操作符的左边一定是一个结构变量,两者不能混淆使用。

下面我们来看一段程序,掌握如何使用结构指针:(程序9.4)

#include "iostream.h"
struct student
{
   int idNumber;
   char name[15];
   int age;
   char department[20];
   float gpa;
};
void display(student *arg);//结构指针作为函数参数
int main()
{
   student s1={428004, "Tomato",20, "ComputerScience",84.5};//初始化结构变量
   student *s1ptr=&s1;//定义结构指针变量,并把s1的地址赋值给s1ptr
   display(s1ptr);
   return 0;
}
void display(student *arg)
{
   cout <<"学号:" <<arg->idNumber <<"姓名:" <<arg->name <<"年龄:" <<arg->age <<endl <<"院系:" <<arg->department <<"成绩:" <<arg->gpa <<endl;//用箭头操作符访问成员数据
}

运行结果:
学号:428004姓名:Tomato年龄:20 
院系:ComputerScience成绩:84.5

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门