指针&数组 动态数组

  • 指针 特别适用于 处理 存储在一段连续内存空间同类型数据,如数组
  • 等价形参列表 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;

}
`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值