指针也就是内存地址,指针变量是用来存放内存地址的变量,
指针描述了数据在内存中的位置,标示了一个占据存储空间的实体,在这一段空间起始位置的相对距离值
指针相对于一个内存单元来说,指的是单元的地址,该单元的内容里面存放的是数据。在 C 语言中,允许用指针变量来存放指针,因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。 [
形参:
实参:
形参的本质是一个名字,不占用内存空间。实参的本质是一个变量,已经占用内存空间。
数组:数组是用于储存多个相同类型数据的集合。
指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。
(1)一维数组:
int* arr = new int[n];//创建一维数组
delete[] arr;//销毁
(2)二维数组:
int** arr = new int*[row];//这样相当于创建了数组有多少行
for(int i=0;i<row;i++)
{
arr[i] = new int[col];//到这里才算创建好了
}
//释放
for(int i=0;i<row;i++)
{
delete[] arr[i];
}
delete[] arr;
//(1)指向对象的指针:(()里面的值是初始化值)
int p=new int(0) ; delete p;
//(2)指向数组的指针:(n表示数组的大小,值不必再编译时确定,可以在运行时确定)
int p=new int[n]; delete[] p;
//(3)指向类的指针:(若构造函数有参数,则new Class后面有参数,否则调用默认构造函数,delete调用析构函数)
Class p=new Class; delete p;
//(4)指针的指针:(二级指针)
int pp=new (int)[1];
pp[0]=new int[6];
delete[] pp[0];
指针数组:它实际上是一个数组,数组的每个元素存放的是一个指针类型的元素
int arr[8];
//优先级问题:[]的优先级比高
//说明arr是一个数组,而int是数组里面的内容
//这句话的意思就是:arr是一个含有8和int的数组
数组指针:它实际上是一个指针,该指针指向一个数组。
int (arr)[8];
//由于[]的优先级比高,因此在写数组指针的时候必须将arr用括号括起来
//arr先和结合,说明p是一个指针变量
//这句话的意思就是:指针arr指向一个大小为8个整型的数组。