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;
▲ 可以声明指向常量的指针,此时不能通过指针来改变所指对象的值,
但指针本身可以改变,这样可以
确保指针所指向的常量不被意外更改:


发布评论