参考链接
数组
数组是存储一个固定大小的相同元素的顺序集合,它们在内存中中对应的地址是连续的。下面我们来看一下数组声明:
数据类型 数组变量名[数组大小] //这是简单的一维数组
下面我们通过程序来看一下:
#include <iostream>
using namespace std;
int main()
{
int iArrayVar1[5] = {0, 1, 2, 3, 4}; //初始化一维数组
int iArrayVar2[2][3] = { 1, 2, 3, 4, 5, 6 }; //初始化二维数组
cout << "一维数组" << endl;
for (int iId = 0; iId < 5; iId++)
cout << iArrayVar1[iId] << " ";
cout << endl;
cout << "二维数组" << endl;
for (int iId1 = 0; iId1 < 2; iId1++)
{
for (int iId2 = 0; iId2 < 3; iId2++)
{
cout << iArrayVar2[iId1][iId2] << " ";
}
cout << endl;
}
getchar();
}
运行结果
一维数组
0 1 2 3 4
二维数组
1 2 3
4 5 6
注:数组不仅局限在一维数组,可以是多维数组,在程序中就展示了二维数组的声明以及初始化。其它初始化的方式都是一样的,就是要声明多维数组只需要在变量后添加[数组大下]即可。
在这里还要说明一下,数组中经常使用的一个方式,就是数组的变量名代表了数组的首地址。并且数组中内存地址都是连续的,所以我们可以通过访问指向数组首地址的指针通过累加地址方式,就可以访问数组中的数据。
#include <iostream>
using namespace std;
int main()
{
int iArrayVar1[5] = {0, 1, 2, 3, 4}; //初始化一维数组
int iArrayVar2[2][3] = { 1, 2, 3, 4, 5, 6 }; //初始化二维数组
int *iPointVar = iArrayVar1; //指针指向数组首地址
cout << "一维数组" << endl;
for (int iId = 0; iId < 5; iId++)
{
cout << *iPointVar << " ";
iPointVar++;
}
cout << endl;
getchar();
}
运行结果
一维数组
0 1 2 3 4
注:因为下篇才会讲指针,所以下篇会讲解如果通过指针访问二维数组。
结构体
结构体可以说是比数组更为灵活的一种数据构造方式,在数组中只能允许数据类型相同的数据进行存储。但是结构可以允许用户自己定义数据类型。结构体的语句:
struct 变量名1{ //此处变量名1为该结构体的名字
数据类型 变量名2;
.
.
.
数据类型 变量名n;
}目标名; //在程序中声明的变量名,来进行数据访问和操作
知道了结构体的语句,下面我们通过实例来说明:
#include <iostream>
using namespace std;
struct Students
{
char* sName;
int iAge;
float fArrayScore[10];
}; //声明结构体
int main()
{
Students stTom = {NULL}; //初始化为空值
stTom.sName = "Tom";
stTom.iAge = 13;
for (int iId = 0; iId < 10; iId++) //对结构体进行赋值操作
{
stTom.fArrayScore[iId] = 49;
}
/*输出打印相关信息*/
cout << "打印学生信息" << endl;
cout << "姓名:" << stTom.sName << endl;
cout << "年龄:" << stTom.iAge << endl;
cout << "分数:" << endl;
for (int iId = 0; iId < 10; iId++)
{
cout << stTom.fArrayScore[iId] << " ";
}
getchar();
}
运行结果
打印学生信息
姓名:Tom
年龄:13
分数:
49 49 49 49 49 49 49 49 49 49
注:上述代码是简单的结构体构建及使用的方式,在讲了指针之后,会详细讲解结构体指针的操作方式等。
更多《计算机视觉与图形学》知识,可关注下方公众号: