2024年5月30日发(作者:)

● 数组:数组是具有一定顺序关系的若干对象的集合体,组成数组的对象称为

该数组的元素。

▲ 每个元素有n个下标的数组称为n维数组。

▲ a[100]:下标从0开始,到99止,不能为100。

▲ a[i][j]:i为行标,j为下标。

● 数组的声明: 数组类型 数组名[表达式1][表达式2]……

● 数组的使用: 数组类型 数组名[表达式1][表达式2]……

● 数组的存储:数组元素在内存中是顺序、连续存储的。

● 数组的初始化:就是在声明数组时给部分或全部元素赋初值。

▲ int a[3]={1,2,3}; 等价于 int[]{1,2,3};

▲ int a[5]={1,2,3}; //部分初始化,必须连续,不能间隔赋初值

▲ int a[2][3]={1,2,3,4,5,6}; 等价于 int a[][3]={1,2,3,4,5,6} //

给出全部的初值时,行标可省

▲ int a[2][3]={{1,2},{3,4},{5,6}};

● 数组作为函数参数

▲ 使用数组名传递数据时,传递的是地址

▲ 使用数组名做函数的参数,则实参和形参都应该是数组名,且类型要

相同

▲ 对形参数组的修改,也就是对实参数组的修改

▲ int ss(int a[][4],int bb) 调用:ss(b,x); //b是数组,x传递的

是第一维的维数

● 对象数组

▲ 声明: 类名 数组名[下标表达式]

▲ 引用: 数组名[下标].成员名

▲ 当一个数组中的元素对象被删除时,系统会调用析构函数来完成扫尾

工作。

● 指针:是对地址直接操作的手段。动态内存分配和管理也离不开指针

● 指针类型:用来存放内存单元地址的变量类型,就是指针类型。

● 指针变量的声明: 数据类型 *标识符;

● 与地址相关的运算——"*"和"&"

▲ "*"称为指针运算符(也称解析(dereference)),表示获取指针所指

向的变量的值,是一元操作符。

▲ "&"称为取地址运算符,用来得到一个对象的地址,是一个一元操作符。

▲ int *p; //声明p是一个int型指针

▲ cout*p; //输出指针p所指向地址中的内容

▲ int &ctj; //声明一个int型的引用ctj

▲ int a,b;

int *pa,*pb=&b;

pa=&a;

● 指针的赋值

▲ 指针声明后,必须先赋值后使用。

▲ 在声明指针的同时进行初始化赋值:

存储类型 数据类型 *指针名=初始地址;

▲ 在声明指针后,单独使用赋值语句赋值:

指针名=地址;

▲ 可以使多个指针指向同一个变量:

int a,*p1,*p2,*p3;

a=8;

p1=&a;

p2=p1;

p3=p1;

▲ 数组的起始地址就是数组名:

int a[10];

int *p=a;

▲ 可以声明指向常量的指针,此时不能通过指针来改变所指对象的值,

但指针本身可以改变,这样可以

确保指针所指向的常量不被意外更改: