数组声明时必须指定该数组的长度:

 int a[];

这个时候已经分配了内存,但没有初始化,所以具体的值是不确定的;

初始化:

 int a[] = {, , };
int a[] = {};//指定第一个数字为1,后面的使用0填充;
int a[] = {};//指定所有的元素都是用0填充;

标准方式:

 int a[];

数据保存在栈内存中,在声明时会分配内存,在其作用域结束时会由系统自动释放,不需要额外处理;

指针方式:

 int* value = new int[];

数据保存在堆内存中,该内存块会一直存在,就算程序关闭也会继续存在,需要手动释放该内存;

 delete []value;

二维数组初始化:

 int value[][]; // value[i][j]的值不定,没有初始化
int value[][] = {{,},{}}; //value[0][0,1]和value[1][0]的值初始化,其他初始化为0 int (*value)[n] = new int[m][n];
delete []value; // n必须为常量,调用直观。未初始化
int** value = new int* [m];
for(i) value[i] = new int[n];
for(i) delete []value[i];
delete []value; // 多次析构,存储麻烦,未初始化 int * value = new int[][]; // 数组的存储是按行存储的
delete []value; // 一定要进行内存释放,否则会造成内存泄露

多维数组初始化:

 int * value = new int[m][][]; // 只有第一维可以是变量,其他几维必须都是常量,否则会报错
delete []value; // 一定要进行内存释放,否则会造成内存泄露

数组初始化的大括号后面要加“;”来表示结束。

多维数组在内存中存储时是按照最低维连续的格式存储的,如二维数组{{1,2},{3,4}}在内存中的位置是这样顺序的“1,3,2,4”

数组访问:

 value[i][j];
*(value[i] + j);//指针形式
(*(value + i))[j];//指针形式

数组作为参数传递:

 //一维数组
void Func(int *value);
void Func(int value[]); //二维数组
//定义是 int **value;的传递
void Func(int **value);
//定义是 int (*value)[n] = new int[m][n];的传递
void func(int (*value)[n]);

C++学习笔记(三):数组的更多相关文章

  1. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  2. PHP学习笔记之数组篇

    摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇   一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...

  3. Java IO学习笔记三

    Java IO学习笔记三 在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类. OutputStreamWriter:是Writer的子类,将输出的 ...

  4. JavaScript学习笔记之数组(二)

    JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...

  5. 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记

    回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...

  6. angular学习笔记(三十一)-$location(2)

    之前已经介绍了$location服务的基本用法:angular学习笔记(三十一)-$location(1). 这篇是上一篇的进阶,介绍$location的配置,兼容各版本浏览器,等. *注意,这里介绍 ...

  7. angular学习笔记(三十一)-$location(1)

    本篇介绍angular中的$location服务的基本用法,下一篇介绍它的复杂的用法. $location服务的主要作用是用于获取当前url以及改变当前的url,并且存入历史记录. 一. 获取url的 ...

  8. angular学习笔记(三十)-指令(10)-require和controller

    本篇介绍指令的最后两个属性,require和controller 当一个指令需要和父元素指令进行通信的时候,它们就会用到这两个属性,什么意思还是要看栗子: html: <outer‐direct ...

  9. angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令

    在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...

  10. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

随机推荐

  1. Adobe Acrobat XI Pro安装破解

    注册机使用说明: Install Instructions: (Read carefully!) 安装说明(仔细阅读!) 1. Disable your Network card or pull th ...

  2. CodeForces152C——Pocket Book(排列组合问题)

    Pocket Book DescriptionOne day little Vasya found mom's pocket book. The book had n names of her fri ...

  3. ZOJ1204——Additive equations(DFS)

    Additive equations Description We all understand that an integer set is a collection of distinct int ...

  4. HDFS的命令行操作

    1.namenode –format:格式化DFS 文件系统 2.secondaryNameNode: 运行DFS的 SecondaryNameNode 进程 hadoop secondaryname ...

  5. Wince6 RIL层移植

    RIL移植: 因为不同的模组,支持的AT命令有所不同,或是格式不一样,还有就是返回不一样,我们有必要对不同的模组进行RIL驱动移植. 在Response.cpp,Msg.cpp等 文件中ParseXX ...

  6. php 对象的执行

    1.BNF范式 %token T_OBJECT_OPERATOR "-> (T_OBJECT_OPERATOR)" unticked_statement: | expr TS ...

  7. python20151125

    python exit() python test.py 输入输出 print('2\n2') print(1, 2, 3) name = input() print(':', name) 数据类型和 ...

  8. Java [Leetcode 42]Trapping Rain Water

    题目描述: Given n non-negative integers representing an elevation map where the width of each bar is 1, ...

  9. tomcat+oracle连接池

    tomcat 5.5.23 oracle 10g 全局配置 一.tomcat目录\common\lib下添加包ojdbc14.jar. 二.tomcat目录\conf\server.xml的<G ...

  10. sharepoint 2010 页面添加footer方法 custom footer for sharepoint 2010 master page

    转:http://blog.csdn.net/chenxinxian/article/details/8720893 在sharepoint 2010的页面中,我们发现,没有页尾,如果我们需要给页面添 ...