1, 变量内存的动态分配 (创建) 与释放: 通过指针, 动态间接赋值, 取值
指针变量名 = new 数据类型(初始值); 初始值可省略, 后边再赋值.
delete 指针变量名;
- #include<iostream>
- using namespace std;
- int main() {
- //int *p = new int; *p = 5;
- int *p = new int(5);//new 运算符, 动态创建一个 int 型变量(无变量名), 值为 5.
- cout <<*p;// 输出所指地址的值
- delete p;// 释放指针变量的内存空间
- return 0;
- }
2, 一维数组的动态分配 (创建) 与释放:
指针变量名 = new 数据类型[正整数常量, 变量或表达式];
delete [ ]指针变量名;
- #include<iostream>
- using namespace std;
- int main() {
- int *p = new int[5];//new 运算符, 动态创建一个 int 型数组(无数组名).
- *(p + 1) = 10;// 赋值第 2 个元素
- // 或 p[1]=10;
- cout <<p[1];// 输出所指地址的值
- delete []p;// 释放指针变量数组的内存空间
- return 0;
- }
显示 Fibonacci 数列的前 N 项, 0,1,1,2,3,5,8,...
- #include<iostream>
- using namespace std;
- int main() {
- int N;
- cin>> N;
- int *p = new int[N]; // 动态创建包含 N 个元素的数组
- p[0] = 0; p[1] = 1;// 给定第 1,2 元素的值, 等效 * p=0;*(p+1)=1;
- for (int i = 2; i < N; i++){
- p[i] = p[i - 1] + p[i - 2];
- }
- for (int i = 0; i < N; i++)
- {
- cout << p[i] << " ";
- }
- delete []p;// 释放指针变量数组的内存空间
- return 0;
- }
来源: http://www.bubuko.com/infodetail-2873145.html