题目分别收录于 牛客网 在线编程-语法篇-C++入门-02复合类型-CPP29 和 CPP57
new 运算符和 delete 运算符用来动态分配/撤销内存空间。new 运算符用来分配内存空间,delete 运算符用来撤销内存空间。
new 运算符使用格式:
new 类型[初值];
例如:分配一个存放整型一维数组空间,且数组有n个元素:
new int[n];
用 new 分配数组空间时不能指定初值。
delete 运算符使用格式:
delete[]指针变量
例如:首先分配一个存放整型一维数组空间,并将返回的指向整型数组的指针赋给指针变量p ,然后撤销用 new int[n] 分配的空间:
int *p = new int[n];
delete []p;
在指针变量前面加上一对方括号,表示对数组空间的操作。
new 和 delete要配合使用。
键盘输入一个正整数 n,创建大小为 n 的数组 (采用动态数组的方式),将数组中的元素初始化为 n、n+1、…、2n - 1。并输出数组中的元素。
键盘输入一个正整数 n
输出数组中的元素,元素和元素之间使用空格隔开
输入:
3
输出:
3 4 5
#include
using namespace std;
int main() {
int n;
cin >> n;
// write your code here......
return 0;
}
本题属于简单题。
首先分配一维数组的空间,然后利用指针对数组赋值,最后撤销空间。
#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;
}
输入一个正整数 n,创建大小为 n ∗ n n*n n∗n 的二维数组 a a a (采用动态数组的方式),将 a [ i ] [ j ] a [ i ] [ j ] a[i][j] 初始化为 i + j i+j i+j ( 0 ≤ i ≤ n 0 ≤ i≤n 0≤i≤n, 0 ≤ j ≤ n 0 ≤ j ≤ n 0≤j≤n )。并输出数组中的元素。
输入一个正整数 n
输出 n 行,每行 n 个用空格隔开的整数表示数组 a
输入:
2
输出:
0 1
1 2
#include
using namespace std;
int main(){
int n;
cin>>n;
// write your code here......
return 0;
}
本题属于入门题。
#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;
}