今天讲了对象数组、指针与引用。
对象数组:数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。
当数组中每一个对象被生命期结束时,系统都要调用一次析构函数。
指针:内存空间的访问方式,通过变量名访问,称为直接访问。通过地址访问,称为间接访问。
指针变量:用于存放地址的变量。
地址:
“地址”中存放的数据类型与指针类型必须相符。
向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数0,表示空指针。
指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是unsigned long 型。
允许声明指向 void 类型的指针。该指针可以被赋予任何类型对象的地址。
动态内存分配:
使用new和delete进行动态内存分配和释放。
运算符new和delete是C++新增的运算符,提供了存储的动态分配和释放功能。
指针变量的算数运算:指针与整数的加减运算,指针加一,减一运算。
指向数组元素的指针:通过指针引用数组元素经过上述声明及赋值后:
*pa就是a[0],*(pa+1)就是a[1],... ,*(pa+i)就是a[i]。a[i], *(pa+i), *(a+i), pa[i]都是等效的。不能写 a++,因为a是数组首地址是常量
指向类类型对象的指针声明形式:类名*对象指针名;通过指针访问对象成员,对象指针名->成员名。
动态内存分配:使用new和delete进行动态内存分配和释放
运算符new和delete是C++新增的运算符,提供了存储的动态分配和释放功能。
指向对象的指针数组:指针常量和常量指针
指针常量:
在指针定义语句的指针名前加const, 表示指针本身是常量。指针值p不可以修改,指针指向的内容可以修改。即p是常量,不可以作为左值进行运算,*p可以修改。
常量指针:
在指针的定义类型前加const,表示指向的对象是常量。
常对象和常成员函数:常对象:数据成员值在对象的整个生存期间内不能被改变。
即常对象定义是必须进行初始化,而且不能被更改。
内容比较多,比较混乱,梳理一下。
网友评论