C++每日一课(九)

数组


数组是一种数据格式,可以用来存储多个同类型的值,注意这里的同类型。


数组的声明,需要指明以下三点
1.存储在每个元素中值的类型
2.数组名
3.数组中的元素数


在C++中,可以通过修改简单变量的声明,添加中括号(在中括中指出元素的个数)来完成
比如:short months[12];
注意:其中指定的元素个数必须是一个整型字面常量、const值、常量表达式。必须要保证其值在编译时都是已知的。


数组的访问
C++中使用下标或索引来对元素进行编号,它的编号是从0开始的
C++使用带索引的方括号来指定数组中的某个元素,如:months[0] 表示的是months数组中的第一个元素
注意:在数组中最后一个元素的索引一定是比数组长度小1的。


在编译器中它是不会去校验使用下标是否有效的,这个在运行过程中会出错。


/*
作者:xiesheng
时间:2017-06-27
版本:v1.0
说明:数组相关
*/


#include <iostream>


int main() {


	using namespace std;
	int num[3];	//声明int类型的数组
	num[0] = 6;	//数组元素的赋值
	num[1] = 7;
	num[2] = 8;


	int cost[3] = { 10,20,30 };	//声明数组时直接初始化元素的值


	cout << "num数组中各元素求和为:" << num[0] + num[1] + num[2] << endl;
	cout << "cost中各值为:" << cost[0] << "\t" << cost[1] << "\t" << cost[2] << endl;


	int total = num[0] * cost[0] + num[1] * cost[1] + cost[2] * num[2];
	cout << "总共的花费是:" << total << endl;


	cout << "num数组总字节数:" << sizeof num << endl;
	cout << "num数组中各元素所占的字节:" << sizeof num[0] << endl;
	cout << "num数组元素个数:" << sizeof num / sizeof num[0] << endl;
	


	system("pause");
	return 0;
}




num数组中各元素求和为:21
cost中各值为:10        20      30
总共的花费是:440
num数组总字节数:12
num数组中各元素所占的字节:4
num数组元素个数:3
请按任意键继续. . .




int cost[3] = { 10,20,30 }; 这种赋值是在声明数组的时候提供了一个初始化的列表
数组在没有进行初始化元素值的时候其中的值是不确定的(随机的),就是原来内存中的值


有一个初始化列表没有对指定的所有元素进行赋值
int cost[5] = {1,2}; 这个时候只对数组中的前两个元素进行赋值了,后面没有赋值的元素会默认初始化为0
如果需要把数组中的所有元素都初始化为0则可以使用类似于以下的方法进行初始化
long totals[500] = {0};
如果在声明数组时[]中的元素个数没有指明,则编译器会根据初始化列表计算元素的个数,比如
short s[] = {1,3,5,7,9}; 这个时候编译器则认为s数组元素的个数为5


数组还可以直接使用{}来进行初始化
比如:double d[2]{1.0e2,1.2e4};
如果在大括号中不包含任何东西的时候,编译器会把元素值都置为0
int i[10] = {};
float f[10]{};
以上两种方式都会把数组中元素都置为0


列表初始化禁止缩小转换
比如:long l[4] = {25,92,1.0}; //这里是通不过的,因为浮点数不能转为整型


C++中标准模板库STL提供了一种数组的替代品,它是模板类vector,而且新增了模板类array



猜你喜欢

转载自blog.csdn.net/advent86/article/details/73762541