【C++】数组,多维数组的使用

【C++】数组,多维数组的使用


文章目录

  • 【C++】数组,多维数组的使用
  • 简介
  • 1. 数组
    • 1.1. 定义和使用数组
    • 1.2. 访问数组的元素
    • 1.3. 数组和指针
    • 1.4. C风格字符串
  • 2. 多维数组
    • 2.1. 定义和使用多维数组
    • 2.2. 访问多维数组的元素
    • 2.3. 指针和多维数组


简介

本文为《C++ Primer》第五版关于数组,多维数组的读书笔记
!!!本文的源码均来自于《C++ Primer》第五版!!!(可能会稍作修改)
The source codes in this article are all from C++ Primer, The Fifth Edition


1. 数组

数组(Array):数组是一块内存中紧靠的空间,使用起来类似容器,但由于是比较底层的内容,所以并不像标准库的容器一样有丰富的功能

1.1. 定义和使用数组

初始化数组:初始化一个数组,值均使用类型默认值,必须指定它的容量大小,并且指定容量必须使用整型常量/常量表达式

int a1[5];					// 正确:直接使用右值创建数组

int normalInt = 5;
const int constInt = 5;
int a2[normalInt];			// 错误:使用了非常量
int a3[constInt];			// 正确:使用了常量

显性初始化数组:在初始化数组时直接定义其中的内容

int a[] = {
    0, 1, 2 };

数组无法直接拷贝:数组之间无法直接拷贝,直接给数组赋值另一个数组会报错

  • 编译器扩展:少数编译器扩展支持数组拷贝,但仍然建议养成不使用的好习惯,因为那样的源码放到其他编译器会报错
int a[] = {
    0, 1, 2 };
int a2[] = a;			// 错误:无法拷贝

1.2. 访问数组的元素

下标类型size_t:就像vector使用的size_type一样,数组通常使用size_t来表示下标

int a[] = {
    1, 2, 3 };
size_t index = 2;
cout << a[index] << endl;	// 输出“3”

循环访问:由于数组没有类似vector的size()来获取数组大小,很多情况下若我们不知道数组大小,循环访问可能会有下标越界(Index Out of Range)的情况,所以最安全的方法是使用范围for循环

int a[] = {
    1, 2, 3 };
for (auto ele : a)
{
   
	cout << ele << endl;	// 每行输出一个元素
}

1.3. 数组和指针

数组和指针:数组在编译时时长被作为指针(指向首个元素),我们可以用这一特性,利用指针来操作数组

int a[] = {
    1, 2

你可能感兴趣的:(C++,c++)