- 数组的使用场景?
- 内置数组:一维数组、二维数组、多维数组
- 指向数组的指针
一个单一数据的保存只需要一个普通变量;而如果多份相同类型数据需要保存的时候,就可以用到数组
例如一个班有 50 个同学,用来保存班上所有同学名字使用以下数组例子:
- #include
- std::string allNames[50]; // 用来保存 50 名同学名称数组变量
声明语句:
type arrayName[size];
type arrayName[size] = {...};
type arrayName[] = {...};
- // 一维数组例子
- int arrayName1[6]; // 声明6个元素的int数组,未初始化值
- int arrayName2[6] = { 1, 3, 5, 8, 9, 12 }; // 声明6个元素的int数组,并初始化值
- float arrayName3[] = { 1.2, 3.45, 5.01, 8.76 }; // 声明float数组,数组大小则为初始化元素的个数
- // 数组赋值
- arrayName1[0] = 12;
- arrayName1[1] = 13;
- arrayName3[0] = 1.25;
- // 访问数组元素
- const float f1 = arrayName3[0];
- const float f2 = arrayName3[1];
- std::cout << "arrayName3[0] = " << f1 << std::endl;
- std::cout << "arrayName3[1] = " << f2 << std::endl;
- // 遍历数组,需要知道数组的大小(元素个数)
- for (int i = 0; i < sizeof(arrayName2)/sizeof(int); i++) {
- const int v = arrayName2[i];
- std::cout << "arrayName2[" << i << "] = " << v << std::endl;
- }
声明语句:
type arrayName[size1][size2];
type arrayName[size1][size2] = { {...}, {...}, ... };
type arrayName[][] = { {...}, {...}, ... };
- // 二维数组例子
- float arrayName1[3][5] = {
- {1.1, 1.2, 1.3, 1.4, 1.5},
- {2.1, 2.2, 2.3, 2.4, 2.5},
- {3.1, 3.2, 3.3, 3.4, 3.5}
- };
- // 数组赋值
- arrayName1[0][0] = 100.1;
- arrayName1[0][1] = 100.2;
- arrayName1[0][2] = 100.2;
- // 访问数组元素
- const float f1 = arrayName1[1][0];
- const float f2 = arrayName1[1][1];
- const float f3 = arrayName1[1][2];
- std::cout << "arrayName1[1][0] = " << f1 << std::endl;
- std::cout << "arrayName1[1][1] = " << f2 << std::endl;
- std::cout << "arrayName1[1][2] = " << f3 << std::endl;
- // 遍历数组,需要知道数组的大小(元素个数)
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 5; j++) {
- const float v = arrayName1[i][j];
- std::cout << "arrayName1[" << i << "][" << j << "] = " << v << std::endl;
- }
- }
多维数组声明语句:type arrayName[size1][size2]...[sizeN];
多维数组使用参照二维数组;
- int arrayName[5] = {10, 20, 30, 40, 50};
- int* arrayPointer = arrayName; // 指向数组的指针
- // 数组赋值
- arrayPointer[0] = 100;
- // 访问数组
- const int v1 = arrayPointer[1];
- std::cout << "arrayPointer[1] = " << v1 << std::endl;
- // 遍历数组,需要知道数组的大小(元素个数)
- for (int i = 0; i < 5; i++) {
- const int v = arrayPointer[i];
- std::cout << "arrayPointer[" << i << "] = " << v << std::endl;
- }
(使用结束需要用 delete[] 销毁数组)
- // 动态数组例子
- const int size = 10; // 动态数组个数
- float* arrayName = new float[size]; // 创建动态数组
- // 遍历赋值并打印
- for (int i = 0; i < size; i++) {
- arrayName[i] = (i + 0.25);
- std::cout << "arrayName[" << i << "] = " << arrayName[i] << std::endl;
- }
- delete[] arrayName; // 销毁动态数组
- 访问内置数组需要注意下标越界;就是 type array[size] array[index] 访问数组时 index
- 练习1:利用 std::generate_canonical 产生 100 组 [0,1] 范围内随机浮点数,存放到数组1
- 练习2:遍历数组1,判断元素值 <0.5,元素值 +1.0,把结果更新到数组元素值,最后再遍历打印出来
进入视频号学习本文配套视频课程。
-【End】-
哈喽,大家好!我是喜欢coding的小二,一枚“靓仔又不掉头发”的C++开发大头兵;欢迎围观公众号(20YC编程),定期会分享一些技术开发经验、行业资讯、业界动态等。期待您的关注,一起交流学习进步。
#下载示例源码和开发工具,请进入公众号首页,点击(发消息)最下方的(资源下载)菜单即可获取。
喜欢本文章,记得点赞、分享、关注哦~