概述

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

数组定义

在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如:type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C++ 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如:double balance[10];现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。

特点1:所有的数据类型相同

特点2:内存地址连续

三种一位数组定义方式

四种二维数组定义方式

初始化数组

在 C++ 中,您可以逐个初始化数组,也可以使用一个初始化语句,如:double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。如果省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

创建了一个数组,它与前一个实例中所创建的数组是完全相同的。下面是一个为数组中某个元素赋值的实例:balance[4] = 50.0;

上述的语句把数组中第五个元素的值赋为 50.0。所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引,数组的最后一个索引是数组的总大小减去 1。图形表示:

访问数组元素

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。例如:double salary = balance[9];上面的语句将把数组中第 10 个元素的值赋给 salary 变量。下面演示声明数组、数组赋值、访问数组:


#include <iostream>
using namespace std;

#include <iomanip>
using std::setw;

int main ()
{
   int n[ 10 ]; // n 是一个包含 10 个整数的数组

   // 初始化数组元素
   for ( int i = 0; i < 10; i++ )
   {
      n[ i ] = i + 100; // 设置元素 i 为 i + 100
   }
   cout << "Element" << setw( 13 ) << "Value" << endl;

   // 输出数组中每个元素的值
   for ( int j = 0; j < 10; j++ )
   {
      cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
   }

   return 0;
}

扫描 关注公众号 java一号。更重要的是小猿愿成为你编程路上的一个朋友!

文章首发地址: www.javayihao.top

首发公众号: java一号

最新文章

  1. Java 7 Concurrency Cookbook 翻译 第一章 线程管理之五
  2. Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
  3. VS2010编译、调用Lua程序
  4. 1710: [Usaco2007 Open]Cheappal 廉价回文
  5. Responsive Table 利用@media
  6. Javascript:一个优雅的时钟
  7. linux双线ip设置(不需额外增加路由表)
  8. day21 python之模块和包
  9. java之项目构建工具Gradle
  10. vue导出excel
  11. opencv-android笔记1:android studio 2.3 + opencv-android-sdk 实现 camera预览
  12. tcp_协议基础
  13. Value &#39;0000-00-00 00:00:00&#39; can not be represented as java.sql.Timestamp
  14. SPI核软件调试结果
  15. arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别【转】
  16. fork 了别人的仓库后,如何将自己的代码和原仓库保持一致
  17. api接口签名相关文章
  18. 20155316 实验四 《Android程序设计》
  19. JavaScript和jQuery的学习
  20. [洛谷P2365] 任务安排

热门文章

  1. 以太网驱动的流程浅析(三)-ifconfig的-19错误最底层分析【原创】
  2. Cocos2d-x项目编译为Android应用——命令行方式
  3. Appium(三):安装appium client、adb命令
  4. 计算机网络知识之TCP/IP协议簇
  5. 易优CMS:arclist 文档列表
  6. Linux中长时间运行程序的方法
  7. Mysql数据基本操作(增、删、改、查)
  8. Git - Git推送本地分支到远程分支报错(! [rejected] non-fast-forward)的解决办法
  9. C# Xamarin 数据绑定入门基础
  10. JVM发生full gc的情景有哪些