C++在数组元素个数未知情况下声明数组
我们都从书上学习的方法,定义一个数组需要数组名、类型以及数组元素个数,一般定义必须明确元素的个数,否则无法通过编译。
1、
int a[];
2、
int n;
int a[n];
就想上面这两种情况,肯定无法通过编译的。
当然有一种情况不用定义元素个数,就是在声明的时候就将数组进行初始化赋值。
int a[] = {,,,}
这种情况是可以的。
那当我不想进行初始化赋值,又不能确定元素个数时,我们该如何声明这个数组呢?
我相信很多人遇到过这个问题,我也一样。今天我终于找到这个问题的解决方案——利用动态声明的方式声明一个数组。
首先,我们来看看一维数组的定义,代码如下:
int n;
int *a = new int[n];
当然,动态声明一位数组,实质是根据n的值向内存申请了n*sizeof(int)大小的空间,在数组使用完之后,需要释放这个空间:
delete []a;
那么二维数组如何通过动态声明进行声明呢?代码如下:
int **a = new int*[m]; //首先声明一组指向各行指针
for(int i = ;i<m;i++)
a[i] = new int[n] //再声明各行的每列元素的指针
同样,使用完数组还需释放内存空间:
for(int i = ; i<m;i++)
delete []a[i];
delete []a;
最后要注意的一点是,动态声明的二维数组中,a[k]是一个int*类型,是一个指针,因此只能使用a[i][j]或*(*(a+i)+j)访问相应的元素,绝对不能使用a[i*n+j]的方式访问。
C++在数组元素个数未知情况下声明数组的更多相关文章
- C++数据个数未知情况下的输入方法
我们经常需要输入一串数,而数据个数未知.这时候就不能以数据个数作为输入是否结束的判断标准了. 这种情况下,我们可以用以下两种方法输入数据. 方法一:判断回车键(用getchar()=='\n'即可判断 ...
- int 存储大小 数组元素个数
为了得到某个类型或某个变量在特定平台上的准确大小,您可以使用 sizeof 运算符.表达式 sizeof(type) 得到对象或类型的存储字节大小.下面的实例演示了获取 int 类型的大小: 实例 # ...
- JS对象 指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回 ...
- 把cookie以json形式返回,用js来set cookie.(解决手机浏览器未知情况下获取不到cookie)
.继上一篇随笔,链接点我,解决手机端cookie的问题. .上次用cookie+redis实现了session,并且手机浏览器可能回传cookies有问题,所以最后用js取出cookie跟在请求的ur ...
- html2canvas如何在元素隐藏的情况下生成截图
html2canvas官网地址:http://html2canvas.hertzen.com/ github地址:https://github.com/niklasvh/html2canvas/ 从官 ...
- JS如何在不给新空间的情况下给数组去重?
1.先排序,在让相邻元素对比去重 const nums = [3, 1, 1, 5, 2, 3, 4, 3, 5, 5, 6, 4, 6, 6, 6]; Array.prototype.arrayNo ...
- java_不知道数据类型情况下,数组遍历-反射
if(items.getClass().isArray){ this.collection = new ArrayList(); int length = Array.getLength(items) ...
- python 数组元素个数
list=[1,2,3,{1,4,5,6,7}] print(len(list)) 输出4
- Perl: print @globbing."\n"; 和 print @globbing; 不一样,一个已经转换为数组元素个数了
48 print @globbing."\n"; 输出: 3
随机推荐
- (转) Friendship and inheritance
原地址: http://www.cplusplus.com/doc/tutorial/inheritance/ Friend functions In principle, private and p ...
- C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符
1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ...
- 【solr基础教程之九】客户端
一.Java Script 1.由于Solr本身可以返回Json格式的结果,而JavaScript对于处理Json数据具有天然的优势,因此使用JavaScript实现Solr客户端是一个很好的选择. ...
- 序列化layer创建的弹出表单并ajax提交
/** *createTime:2015-09-13 *updateTime:2015-09-13 *author:刘俊 *phone:13469119119 *QQ:418873053 **/ va ...
- grep;egrep;fgrep
-1 使用场景:搜索定位内容并输出(所在行) -2 三者区别: --1 grep 默认支持普通正则 --2 egrep 默认支持扩展正则 等同于 grep -E --3 fgrep 速度最快,不支持 ...
- oc语言--语法
一.OC简介 1.简介 它是C语言的基础上,增加了一层面向对象语法 OC完全兼容C语言 可以在OC代码中混入C语言代码,甚至是C++代码 可以使用OC开发mac OS X平台和IOS平台的应用程序 2 ...
- scrollbarsstyle
android:scrollbarStyle属性及滚动条和分割线覆盖问题 本文主要介绍android view的android:scrollbarStyle属性意义android:scrollbarS ...
- linux下休眠/待机命令
http://blog.csdn.net/hshl1214/article/details/6228275
- DES、AES、TEA加密算法的比较
1. DES算法介绍: DES算法具有对称性, 既可以用于加密又可以用于解密.对称性带来的一个很大的好处在于硬件实现, DES 的加密和解密可以用完全相同的硬件来实现.DES 算法的明文分组是 ...
- QAction系列详解
QAction系列详解 一.QAction类详解 [详细描述] QAction类提供了抽象的用户界面action,这些action可以被放置在窗口部件中. 应用程序可以通过菜单,工具栏按 ...