文章目录
写在前面
现代c++程序应尽量使用vector和迭代器类型,而避免使用低级的数组和指针(因为使用数组的程序更容易出错而且难以调试),只有在强调速度的时候才会在类实现的内部使用数组和指针。
一句话描述指针:指针是存放内存地址编号的变量
一、数组和指针基础知识
(1)数组
数组可以存储一组值,所有值均具有相同的数据类型。这些值一起存储在连续的内存位置。数组有以下几个特点:
- 数组长度固定,一经创建,就不允许添加新的元素,而vector是动态数组,长度可变,能使用push_back添加新元素。
- 不允许直接赋值与复制,只能一个元素一个元素的赋值,也可以显式的提供元素的初值。
- 如果必须向数值内添加新元素,就必须创建更大内存的数组,然后将原有数组复制到新的内存空间中去。
- 数组名有两个用途:1.代表数组首地址;2. 可以得到整个数组所占的内存空间;
多维数值
多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。声明一个 x 行 y 列的二维整型数组。
创建访问和输出和一维数组类似。
#include "pch.h"
#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
int main()
{
//多维数组,最简单的多维数组是二维数组
int duoweishuzu[1][2][3];
int erweishuzu[2][2] = {
1, 2, 3, 4};
//二维数值初始化
int erweishuzu1[2][2];
erweishuzu1[1][1] = 4;
//访问二维数组
std::cout << "Element" << setw(13) << "Value" << endl;
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
std::cout << "erweishuzu value[" <<i<<"]["<<j<<"]"<<setw(6) << erweishuzu[i][j]