博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C/C++] C++中new的语法规则
阅读量:4327 次
发布时间:2019-06-06

本文共 1668 字,大约阅读时间需要 5 分钟。

1 int *x = new int;       //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(即指针)2 int *a = new int(100);  //开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址3 char *b = new char[10]; //开辟一个存放字符数组(包括10个元素)的空间,返回首元素的地址4 float *p=new float (3.14159);//开辟一个存放单精度数的空间,并指定该实数的初值为//3.14159,将返回的该空间的地址赋给指针变量p

而二维数组的动态创建则较为复杂:

·动态申请列大小固定的二维数组

1 //列值固定2 const int MAXCOL = 3;3 cin>>row;4 //申请一维数据并将其转成二维数组指针5 int *pp_arr = new int[nRow * MAXCOL];6 int (*p)[MAXCOL] = (int(*)[MAXCOL])pp_arr;7 8 //此时p[i][j]就可正常使用

·动态申请大小不固定的二维数组

方式1:

1 cin>>row>>col;2 int **p = new int*[row];3 for (int i = 0; i < row; i ++)4 {5     p[i] = new int[col];6 }

访问数据的方式:直接通过a[i][j]访问第i行第j列的数据。

优缺点:通过a[i][j]访问数据容易,但是new的次数太多,释放空间不容易。

方式2:

1 cin>>row>>col;2 int *p = new int[row*col];//这种是当成一维数组连续开辟的

访问数据的方式:通过a[i*(row+1)+j]来访问第i行第j列的数据。

优缺点:访问数据很方便,且new的次数少,释放空间容易,但是不便于理解。

测试代码:

1 #include
2 using namespace std; 3 int main() 4 { 5 int row,col; 6 cin>>row>>col; 7 //方式1创建 8 /*int **p = new int*[row]; 9 for(int i = 0; i < row; i ++)10 {11 p[i] = new int[col];12 }13 //赋值14 for(int i = 0; i < row; i ++)15 {16 for(int j = 0; j < col; j ++)17 {18 p[i][j] = i + j;19 }20 }21 //输出22 for(int i = 0; i < row; i ++)23 {24 for(int j = 0; j < col; j ++)25 {26 cout<
<<" ";27 }28 cout<
< row*col;i ++)34 {35 p[i] = i;36 }37 //输出38 for(int i = 0; i < row; i ++)39 {40 for(int j = 0; j < col; j ++)41 {42 cout<
View Code

 

转载于:https://www.cnblogs.com/lca1826/p/6506183.html

你可能感兴趣的文章
玩转webpack之webpack的entry output
查看>>
java 操作mongodb查询条件的常用设置
查看>>
黑马程序员_java基础笔记(02)...java语言基础组成
查看>>
对innodb 拷贝文件实现数据库的方式(转)
查看>>
python知识点 2014-07-09
查看>>
FloatingActionButton的一点学习感悟
查看>>
ABAP CDS ON HANA-(10)項目結合して一つ項目として表示
查看>>
网站地址信息
查看>>
产品经理 - 登录 注册
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>