对象数组初始化
数组中每一个元素对象被创建时 系统都会调用类构造函数初始化该对象
通过初始化列表赋值
point a[2]={point(1,2),poiint(3,4};
如果没有为数组元素指定显示初始值 数组元素便使用默认值初始化(调用默认构造函数)
基于范围的for循环
for(int &e:array)
不用管执行次数 会自动计算出来
指针
指针运算和地址运算互为逆运算
eg
static int* =ptr =&;
ptr为指向int变量的指针
初始化
语法形式:
存储类型 数据类型 *指针名=初始地址
eg *pa=&a;
attention:
用变量地址作为初值时 该变量必须在指针初始化前已声明
且变量类型应与指针类型一致
可以用一个已有合法值的指针去初始化另一个指针变量
不要用一个内部非静态变量去初始化static指针
指向常量的指针
const指针
不能通过指向常量的指针改变所指对象的值 但指针本身可以改变 可以指向另外的对象
指针类型的常量
若声明指针常量 则指针本身的值不能改变
eg
p1=&b; 错 p2为常量 值不能改变
指针运算
- 指针p加或减n:指针当前指向位置的前方或后房第n个数据的起始位置
- ++/–:指向下一个或前一个完整数据的起始
- 运算结果取决于指针指向的数据类型 总是指向一个完整数据的起始位置
- 当指针指向连续存储的同类型数据时 指针与整数的自运算才有意义
floor函数:向下取整
用来得到不大于一个数的最大整数
声明在头文件cmath中
对一个数x做四舍五入取整:floor(x+0.5)
!=ceil:向上取整函数