穿越火线手游官方网站:C++中 怎样定义一个结构数组,也就是数组的元素是结构.

来源:百度文库 编辑:神马品牌网 时间:2024/04/20 08:25:10

结构数组就是具有相同结构类型的变量集合。
  假如要定义一个班级40个同学的姓名、性别、年龄和住址, 可以定义成一个结构数组。如下所示:
struct{
char name[8];
char sex[2];
int age;
char addr[40];
}student[40];
  也可定义为:
struct string{
char name[8];
char sex[2];
int age;
char addr[40];
};
struct string student[40];
  需要指出的是结构数组成员的访问是以数组元素为结构变量的, 其形式为:
  结构数组元素.成员名
例如:
student[0].name
student[30].age
  实际上结构数组相当于一个二维构造, 第一维是结构数组元素, 每个元素是
  一个结构变量, 第二维是结构成员。
  注意: 结构数组的成员也可以是数组变量。
  例如:
struct a
{
int m[3][5];
float f;
char s[20];
}y[4];
  为了访问结构a中结构变量y[2]的这个变量, 可写成
y[2].m[1][4]

比如:
typedef struct{
int data;
char string;
double t_data;
}DATA;
再在函数中定义:
DATA data_array[10];
即建立包含十个元素的结构数组,即元素是结构体

typedef struct __unmaned__10003{
int a;
char b;
}data, *pdata;

调用方法 data d[10];
d[0].a=1;//...

pdata d;
d->a=1;//...

也可以这样写
struct DATA
{
int data;
char string;
double t_tata;
};

DATA data_array[10];

一样的,c++兼容c,也是有struct关键字的,只不过比c多了点东西而已,c++的struct和类基本没有区别,唯一区别就是struct为了兼容c,默认的权限是public的,而类的默认权限是private

#include <iostream>

struct DATA
{
int data;
char string;
double t_data;
};

DATA data_array[10]=
{
{0,'A',0.0},
{1,'B',0.1},
{2,'C',0.2},
{3,'D',0.3},
{4,'E',0.4},
{5,'F',0.5},
{6,'G',0.6},
{7,'H',0.7},
{8,'I',0.8},
{9,'J',0.9}
};

//测试输出
void main()
{
int i;
for(i=0;i<10;i++)
{
std::cout<<data_array[i].data<<" "<<data_array[i].string<<" "<<data_array[i].t_data<<std::endl;
}
}

完毕!