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

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

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

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

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

方式1:

 cin>>row>>col;
int **p = new int*[row];
for (int i = ; i < row; i ++)
{
p[i] = new int[col];
}

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

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

方式2:

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

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

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

测试代码:

 #include<iostream>
using namespace std;
int main()
{
int row,col;
cin>>row>>col;
//方式1创建
/*int **p = new int*[row];
for(int i = 0; i < row; i ++)
{
p[i] = new int[col];
}
//赋值
for(int i = 0; i < row; i ++)
{
for(int j = 0; j < col; j ++)
{
p[i][j] = i + j;
}
}
//输出
for(int i = 0; i < row; i ++)
{
for(int j = 0; j < col; j ++)
{
cout<<p[i][j]<<" ";
}
cout<<endl;
}*/
//方式2创建
int *p = new int [row*col];
//赋值
for(int i = ;i < row*col;i ++)
{
p[i] = i;
}
//输出
for(int i = ; i < row; i ++)
{
for(int j = ; j < col; j ++)
{
cout<<p[i*(row+) + j]<<" ";
}
cout<<endl;
}
return ;
}

[C/C++] C++中new的语法规则的更多相关文章

  1. perl中常见的语法规则和函数

    数值比较操作符         字符串 相等          ==                        eq 不等          !=                         ...

  2. php中正则表达式的语法规则

  3. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  4. Python中比较运算符连用的语法规则

    在Python中,比较运用符<.>.<=.>=.== .!=可以连用,但语法规则和其它编程语言不一样 以 == 为例,具体语法规则是: a == b == c == d 等价于 ...

  5. JSON 语法规则详解

    JSON 的语法规则十分简单,无论用何种方法总结都只有数条而已,它参考了 C 语言家族的一些习惯,学习起来并不会感到陌生. 回顾JSON 的五点语法 1)- 数组(Array)用方括号("[ ...

  6. web.xml中的url-pattern映射规则

    Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单.servlet和filter中的url-pattern有一些文章在里面的,总结了一些东西,以免遇到问题又要浪费时间. 一,s ...

  7. JavaScript的语法规则

    JavaScript的语法规则 JavaScript区分大小写 JavaScript脚本程序须嵌入在HTML文件中 JavaScript脚本程序中不能包含HTML标记代码 每行写一条脚本语句 语句末尾 ...

  8. XML 语法规则

    转摘自:http://www.w3school.com.cn/xml/xml_elements.asp XML 语法规则 XML 文档包含 XML 元素. XML 的语法规则很简单,且很有逻辑.这些规 ...

  9. PHPCMS标签:PC标签模板语法规则

    模板语法规则1.变量表示{$name} 被解析成 <?=$name?>,表示显示变量$name的值,其中的“name”由英文字母.数字和下划线组成首字母必须是英文字母或者下划线. 2.常量 ...

随机推荐

  1. 【HDOJ 1272】小希的迷宫(并查集+无环图)

    描述 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道 ...

  2. python 用selenuim判断页面是否全部加载完成,并且加上最大时长,超过时长报错

    STR_READY_STATE = '' time_start = time.time() while STR_READY_STATE != 'complete': time.sleep(0.001) ...

  3. android 按钮动态点击

    关键代码: 1.创建一个btn_selector.xml的文件 <?xml version="1.0" encoding="utf-8"?>< ...

  4. JS 定时器,定时调用PHP

    $(function() { var voiceplay=function(){ var site = location.href.split('_cms')[0] + '_cms/'; $.ajax ...

  5. hack游戏攻略(黑吧安全吧的黑客闯关游戏)古墓探秘

    2019.2.11 这个是找到的一个黑客游戏,就是一关一关,挺像ctf的,玩玩也挺有意思,还能涨知识. 地址:http://hkyx.myhack58.com/ 入口: 入口就是这样的.提示是 图内有 ...

  6. 8-C++远征之继承篇-学习笔记

    C++远征之继承篇 开篇介绍 整个C++远征计划: 起航->离港->封装->继承 为什么要用继承? 为什么要有继承? 如何来定义基类 <----> 派生类? 基类到派生类 ...

  7. R语言学习笔记(九):fivenum()与quantile()

    fivenum() fivenum(x, na.rm = TRUE) x 为数值型向量,可以包含NA以及Inf,-Inf na.rm = TRUE 默认将NA和NaN去除,但是Inf还保留. five ...

  8. 3106: [cqoi2013]棋盘游戏

    3106: [cqoi2013]棋盘游戏 链接 分析: 极大极小搜索 + 记忆化. 代码 #include<bits/stdc++.h> using namespace std; type ...

  9. Mac OS下搭建Hadoop + Spark集群

    首先注意版本兼容问题!!!本文采用的是Scala 2.11.8 + Hadoop 2.7.5 + Spark 2.2.0 请在下载Spark时务必看清对应的Scala和Hadoop版本! 一.配置JD ...

  10. PostgreSQL 数据库升级

    PostgreSQL软件版本升级后,需要使用pg_upgrade迁移旧版本的数据库,具体的操作参数可以参考官方文档,在此记录一下操作过程中出现的细节问题: 新版本软件在initdb的时候要保证loca ...