- 指针 特别适用于 处理 存储在一段连续内存空间 的 同类型数据,如数组
- 等价形参列表 void f(int q[ ]) void (int q[3] ) void(int *q) !!! 数组传入形参列表中的是数组首地址,无关原数组长
- 指针数组 :每个元素都是指针,因此如果元素是数组。需 :
- 1.首先给每个元素赋初值 2.引用元素的地址(数组指针为数组名)依次放入指针数组中
- 二维数组 指针数组
- 访问形式 ((array+i)+j) *(array[i]+j)
#include<iostream> // 强制类型转换 using namespace std; int main(void) { float a=2.346; int n; n=static_cast<int>(a); cout<<n; return 0; }
先有自定义函数 类型 函数名 (形参);
函数指针 返回类型 (* 函数名)(形参);
函数指针=函数名- 对象指针 1.先有一个初始化对象 2.才被允许将地址赋给对象指针
- this 指针常量 每一个当前成员函数所操作数据的所属对象
动态数组
- `#include
#include // assert函数的头文件
using namespace std;
class point{
int x;
int y;
public:
point(int px,int py):x(px),y(py){cout<<“action”<<endl;} //只有构造和析构函数才能 使用初始化列表
point ( ):x(0),y(0){ }
void moving(int px,int py);
};
void point::moving(int px,int py)
{
x=px; //这个赋值只能这样进行 不能使用初始化列表 初始化列表 只为 构造函数 用来初始化
y=py;
cout<<"("<<x<<","<<y<<")"<<endl;
}
class positivearray{
point *points;
int all;
public:
positivearray(int all):all(all){ points=new point[all];} //遇到new 且对象为 对象数组时 它所初始化的数组元素(对象)
point &element(int n); //必需包含一个无任何形参的构造函数,若只有包含形参的构造函数,编译报错
~positivearray(){delete [] points;}
};
point& positivearray::element(int n)
{ assert(n>=0&&n<all); // 不满足条件时自动退出程序
return points[n]; // 返回值的特殊性(类) 可以 连续使用 点号 例如:head.element(0).moving(5,0);
}
int main(void)
{
positivearray head(3);
head.element(0).moving(5,0);
head.element(1).moving(6,0);
head.element(2).moving(4,0);
head.element(3).moving(9,0);
head.element(4).moving(34,0);
head.element(5).moving(8,0);
return 0;
}
`