• 猿创征文|【C++之new和delete运算符】创建数组


    题目分别收录于 牛客网 在线编程-语法篇-C++入门-02复合类型-CPP29 和 CPP57
    在这里插入图片描述
    在这里插入图片描述

    new运算符和delete运算符

    new 运算符和 delete 运算符用来动态分配/撤销内存空间。new 运算符用来分配内存空间,delete 运算符用来撤销内存空间

    new 运算符使用格式:

    new 类型[初值];
    
    • 1

    例如:分配一个存放整型一维数组空间,且数组有n个元素:

    new int[n];
    
    • 1

    用 new 分配数组空间时不能指定初值。

    delete 运算符使用格式:

    delete[]指针变量
    
    • 1

    例如:首先分配一个存放整型一维数组空间,并将返回的指向整型数组的指针赋给指针变量p ,然后撤销用 new int[n] 分配的空间:

    int *p = new int[n];
    delete []p;
    
    • 1
    • 2

    在指针变量前面加上一对方括号,表示对数组空间的操作。

    new 和 delete要配合使用。

    ⭐️ 题目1

    描述

    键盘输入一个正整数 n,创建大小为 n 的数组 (采用动态数组的方式),将数组中的元素初始化为 n、n+1、…、2n - 1。并输出数组中的元素。

    输入描述:

    键盘输入一个正整数 n

    输出描述:

    输出数组中的元素,元素和元素之间使用空格隔开

    示例1

    输入:

    3
    
    • 1

    输出:

    3 4 5
    
    • 1

    初始代码:

    #include 
    using namespace std;
    
    int main() {
    
        int n;
        cin >> n;
        
        // write your code here......
        
    
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    ⭐️ 代码1

    本题属于简单题。

    首先分配一维数组的空间,然后利用指针对数组赋值,最后撤销空间。

    #include 
    using namespace std;
    
    int main() {
    
        int n;
        cin >> n;
        
        int *p = new int[n];
        
        for(int i = 0; i < n; i++)    
        {
            *(p+i) = n + i;
            cout << *(p+i) << " ";
        }
        
        delete []p;
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    ⭐️ 题目2

    描述

    输入一个正整数 n,创建大小为 n ∗ n n*n nn 的二维数组 a a a (采用动态数组的方式),将 a [ i ] [ j ] a [ i ] [ j ] a[i][j] 初始化为 i + j i+j i+j ( 0 ≤ i ≤ n 0 ≤ i≤n 0in 0 ≤ j ≤ n 0 ≤ j ≤ n 0jn )。并输出数组中的元素。

    输入描述:

    输入一个正整数 n

    输出描述:

    输出 n 行,每行 n 个用空格隔开的整数表示数组 a

    示例1

    输入:

    2

    输出:

    0 1
    1 2
    
    • 1
    • 2

    初始代码:

    #include
    using namespace std;
    int main(){
        int n;
        cin>>n;
        // write your code here......
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    ⭐️ 代码2

    本题属于入门题。

    #include
    using namespace std;
    int main(){
        int n;
        cin>>n;
        
        int *p = new int [n*n];
        
        for(int i = 0; i < n; i++)  
        {
            for(int j = 0; j < n; j++)
            {
                p[i+j] = i + j;
                cout << p[i+j] << " ";
            }
            cout << endl;
        }
        
        delete []p;    
        
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
  • 相关阅读:
    2022“杭电杯”中国大学生算法设计超级联赛(4)
    平面设计实验五 图层及图层混合模式
    Visual Studio Code 1.73发布!
    二维码智慧门牌管理系统升级解决方案:高效、便捷、安全的外业数据管理方法
    【Java】抽象类(abstract)、接口(interface)
    基于springboot+vue的毕业论文选题答辩管理系统
    【Unity入门计划】用双血条方法控制伤害区域减血速度
    论文复现笔记
    程序人生 | 与足球共舞的火柴人(致敬格拉利什,赋予足球更深的意义)
    flink-sql所有表连接器-1.15
  • 原文地址:https://blog.csdn.net/weixin_43470383/article/details/126715187