动态创建数组[通俗易懂]

动态创建数组[通俗易懂]使用运算符new也可以创建数组类型的对象,这时需要给出数组的结构说明。用new运算符动态创建一维数组的语法形式为:new类型名【数组长度】;其中数组长度指出了数组元素的个数,它可以是任何能够得到正整数值的表达式。细节:用new动态创建一维数组时,在方括号后仍然可以加小括号“()”,但小括号内不能带任何参数。是否加“()”的区别在于,不加“()”,则对数组每个元素的初始化,与执行

大家好,又见面了,我是你们的朋友全栈君。

使用运算符new也可以创建数组类型的对象,这时需要给出数组的结构说明。用new运算符动态创建一维数组的语法形式为:
new 类型名【数组长度】;
其中数组长度指出了数组元素的个数,它可以是任何能够得到正整数值的表达式。
细节:
用new动态创建一维数组时,在方括号后仍然可以加小括号“()”,但小括号内不能带任何参数。是否加“()”的区别在于,不加“()”,则对数组每个元素的初始化,与执行“new T”时所进行初始化的方式相同;加“()”,则与执行“new T()”所进行初始化的方式相同。例如,如果这样动态生成一个整型数组:
int *p=new int[10] ();
则可以方便地为动态创建的数组用0值初始化。
如果是用new建立的数组,用delete删除时所在指针名前面要加上“【】”,格式如下:
delete[] 指针名;

#include<iostream>
using namespace std;
class point{
public:
    point():x(0),y(0)
    {
        cout<<"default constructor called."<<endl;
    }
    point(int x,int y):x(x),y(y)
    {
        cout<<"constructor called."<<endl;
    }
    ~point()
    {
        cout<<"destructor called."<<endl;
    }
    int getx() const {
  
  return x;}
    int gety() const {
  
  return y;}
    void movee(int newx,int newy)
    {
        x=newx;
        y=newy;
    }
private:
    int x,y;

};
int main()
{
    point *ptr=new point[2];//创建对象数组
    ptr[0].movee(5,10);//通过指针访问数组元素的成员
    ptr[1].movee(15,20);//通过指针访问数组元素的成员
    cout<<"deleting..."<<endl;
    delete[] ptr;//删除整个对象数组
    return 0;
}

这里利用动态内存分配操作实现了数组的动态创建,使得数组元素的个数可以根据运行时的需要而确定。但是建立和删除数组的过程使得程序略显繁琐,更好的方法是将数组的建立和删除过程封装起来,形成一个动态数组类。
下一篇有 动态数组类的介绍。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134190.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月2日 下午3:00
下一篇 2022年5月2日 下午3:20


相关推荐

  • ROS学习之调用豆包AI大模型(上)配置Anaconda环境

    ROS学习之调用豆包AI大模型(上)配置Anaconda环境

    2026年3月12日
    5
  • c语言中double与float的区别

    c语言中double与float的区别c 语言中 double 与 float 的区别 C 语言中小数的数据类型为 float 或 double float 称为单精度浮点数 double 称为双精度浮点数 不像整数 小数的长度始终是固定的 float 占用 4 个字节 double 占用 8 个字节 f 默认保留六位小数 不足六位以 0 补齐 超过六位按四舍五入截断 例题圆的面积问题描述给定圆的半径 r 求圆的面积 输入格式输入包含一

    2026年3月20日
    2
  • DSP28335学习笔记1

    DSP28335学习笔记1DSP 学习笔记一 28335 资源 1 28335 实际上不是 DSP 而是 DSC2 28335 集成了 DSP 和微控制器的长处 主要用在控制 DSP 是数字信号处理 能够在一个周期内完成 3232 位的乘法累加运算 而普通的单片机需要 4 个周期以上 3 DSP 具有快速的中断响应 4 28335 为 32 位浮点 DSP 主频是 150Mhz 有 epwm 的设备 Flash256k16 位 SRAM34k 16 位 ADC12 位 80ns 转换时间 0 3V 输入 注意 ADC 最大电压 3V 转换频率可达到 12 5M5 SCI 串口 有三个串

    2026年3月26日
    1
  • Python接口自动化测试框架搭建

    Python接口自动化测试框架搭建此框架是基于 python 的 unittest 单元测试框架写的 写的有点简单 有些地方可能不是很完整 后期在逐步完善 先来看下框架的目录布局 common 公共的方法目录 conf 配置文件存放目录 data 测试数据目录 library 存放一些下载第三方的模块 logs 日志文件存放的目录 reports 测试报告存放目录 testcases 测试用例类模块目录 run test py 主程序 项目的启动文件前面 Python 专栏里分开写过每个模块的使用 写的有点菜 阅读量总是那么可怜

    2026年3月16日
    3
  • java.sql.SQLException: ORA-01008: 并非所有变量都已绑定的解决方法「建议收藏」

    java.sql.SQLException: ORA-01008: 并非所有变量都已绑定的解决方法「建议收藏」错误:在使用PreparedStatement的时候,可以很好地避免像Statement的sql注入问题,但是在这里使用PreparedStatement对象和使用Statement对象来执行sql语句有一定的区别。PreparedStatement的对象通过:PreparedStatementp=con.preparedStatement(str);来执行sql语句,其中str是s…

    2025年9月6日
    12
  • ROC曲线的含义以及画法

    ROC曲线的含义以及画法**ROC的含义及画法**ROC的全名叫做ReceiverOperatingCharacteristic(受试者工作特征曲线),又称为感受性曲线(sensitivitycurve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应,只不过是在几种不同的判定标准下所得的结果而已。其主要分析工具是一个画在二维平面上的曲线——ROC曲线。ROC曲线以真正例率TPR为纵轴,以假正例率FPR为横轴,在不同的阈值下获得坐标点,并连接各个坐标点,得到ROC曲线。对于一个分类任务

    2022年5月16日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号