C++入门到理解阶段二基础篇(6)——C++数组
概述
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一号
最新文章
- Java 7 Concurrency Cookbook 翻译 第一章 线程管理之五
- Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
- VS2010编译、调用Lua程序
- 1710: [Usaco2007 Open]Cheappal 廉价回文
- Responsive Table 利用@media
- Javascript:一个优雅的时钟
- linux双线ip设置(不需额外增加路由表)
- day21 python之模块和包
- java之项目构建工具Gradle
- vue导出excel
- opencv-android笔记1:android studio 2.3 + opencv-android-sdk 实现 camera预览
- tcp_协议基础
- Value &#39;0000-00-00 00:00:00&#39; can not be represented as java.sql.Timestamp
- SPI核软件调试结果
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf等的区别【转】
- fork 了别人的仓库后,如何将自己的代码和原仓库保持一致
- api接口签名相关文章
- 20155316 实验四 《Android程序设计》
- JavaScript和jQuery的学习
- [洛谷P2365] 任务安排
热门文章
- 以太网驱动的流程浅析(三)-ifconfig的-19错误最底层分析【原创】
- Cocos2d-x项目编译为Android应用——命令行方式
- Appium(三):安装appium client、adb命令
- 计算机网络知识之TCP/IP协议簇
- 易优CMS:arclist 文档列表
- Linux中长时间运行程序的方法
- Mysql数据基本操作(增、删、改、查)
- Git - Git推送本地分支到远程分支报错(! [rejected] non-fast-forward)的解决办法
- C# Xamarin 数据绑定入门基础
- JVM发生full gc的情景有哪些