Java:
数组的定义:
如下两种方式都可以:
int array[];
int[] array;

注意:数组在定义后,不能直接使用。必须在初始化后才能使用。
初始化有两种方式:
1、静态初始化:
int array[] = {2,3,4};

2、动态初始化:
array = new int[2];
array[0] = 0;
array[1] = 1;
array[2] = 2; // 这句话没有语法错误,运行时会触发异常:java.lang.ArrayIndexOutOfBoundsException

可以通过length获取数组的长度:
System.out.println(array.length); // array.length将会返回2

注意:不能在[]中指定数组的大小。

二维数组:
int array[ ][ ] = { {1, 2}, {2, 3}, {4, 5} };

二维数组的长度计算如下:
System.out.println(array.length); // array.length返回3
System.out.println(array[1].length); // array[1].length返回2

二维数组中可以看作是数组的数组;第1维(维数从0开始)中不同的元素(一维数组)的长度可以不同:
int array[ ][ ] = { {1, 2}, {2, 3}, {4, 5, 6} };

System.out.println(array[0].length); // array[0].length返回2
System.out.println(array[1].length); // array[1].length返回2
System.out.println(array[2].length); // array[2].length返回3

C++:
声明数组时要指定数组元素的数量:
int array[2];

声明后,即可使用:
array[0] = 0;
array[1] = 1;
array[2] = 2; // 这句话没有语法错误,运行时也没有做任何检查。后果不可预料,极度危险。

数组可以在声明的同时初始化:
int array[2] = {0, 1}; // 若列表中元素的个数必须小于或等于声明中的元素个数,否则,编译会出错。

可以省略声明中的元素个数:
int array[] = {0, 1};

注意:int[] array是不符合语法的;int array[]也是不符合语法的(如果要这么写,那么必须在声明的同时进行初始化)。

获取数组长度:
cout << sizeof(array) / sizeof(int);
或者:
cout << std::extent<decltype(array)>::value << endl;
decltype是C++11的特性;std::extent在头文件type_traits中。

二维数组:
int array[3][2] = { {1, 2}, {2, 3}, {4, 5} };
只有第一维的长度可以省略:
int array[][2] = { {1, 2}, {2, 3}, {4, 5} };

数组必须是个方方正正的矩阵,第1维(维数从0开始)的每一个元素(一维数组)的长度必须相当。

对于上述二维数组:
cout << sizeof(array) / sizeof(int) << endl; // 返回6
cout << std::extent<decltype(array)>::value << endl; // 返回第0维的长度,3
cout << std::extent<decltype(array), 1>::value << endl; // 返回第1维的长度,2

注意:std::extent的声明如下:
template<class T, unsigned N = 0>
struct extent;

Java和C++的数组比较的更多相关文章

  1. java中将一个字符数组赋值给另一个,两者同时变化

    java中将一个字符数组赋值给另一个,两者的变化怎么是同步的?怎么才能让他们独立开? 比如有一个int[][] a 已经存在值,现在定义int[][] b=a;之后改变a的值,为何b也跟着改变?怎么才 ...

  2. Java 图片提取RGB数组 RGBOfCharMaps (整理)

    package demo; /** * Java 图片提取RGB数组 RGBOfCharMaps (整理) * 声明: * 和ImageCombining配合使用的工具,这里是提取图片的R.G.B生成 ...

  3. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  4. 在Java中怎样把数组转换为ArrayList?

    翻译自:How to Convert Array to ArrayList in Java? 本文分析了Stack Overflow上最热门的的一个问题的答案,提问者获得了很多声望点,使得他得到了在S ...

  5. Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)

    Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...

  6. JAVA中list,set,数组之间的转换详解

    JAVA的list,set,数组之间的转换,主要是使用Apache Jakarta Commons Collections,具体的方法如下:import org.apache.commons.coll ...

  7. Java 集合 集合与数组之间的转换

    Java 集合 集合与数组之间的转换 @author ixenos 数组转集合 Arrays.asList(T... a) 先给结论:用 Arrays.asList(T... a) 将数组转换成集合 ...

  8. Java 基础类型转换byte数组, byte数组转换基础类型

    Java 基础类型转换byte数组, byte数组转换基础类型 Java类型转换 java类对象转化为byte数组

  9. java byte【】数组与文件读写(增加新功能)

    今天在测试直接写的文章: java byte[]数组与文件读写 时,想调用FileHelper类对字节数组以追加的方式写文件,结果无论怎样竟然数据录入不全,重新看了下文件的追加模式,提供了两种方式: ...

  10. java.sql.SQLException之数组越界

    java.sql.SQLException之数组越界 1.具体错误如下: (1)java.sql.SQLException:Parameter index out of range(0<1) ( ...

随机推荐

  1. django后台admin csv 格式表格导出

    1.在app下新建一个.py文件  此例commen.py commen.py (内容)(具体怎么导出的也不知道这么写就对了) import csv from django.http import H ...

  2. c#控件 menuStrip(转)

    一.概述 菜单通过存放按照一般主题分组的命令将功能公开给用户. MenuStrip 控件是此版本的 Visual Studio 和 .NET Framework 中的新功能.使用该控件,可以轻松创建  ...

  3. 注解@Transactional(rollbackFor = Exception.class) 的用法

    由于业务需求要求,在一个Service的一个方法A中有一个for循环,每次循环里面的业务逻辑有可能发生异常,这个时候就需要将这个循环内的所有数据库操作给回滚掉,但是又不能影响到之前循环里数据的更改,并 ...

  4. Delphi调用C#编写的WebService 注意事项

                            返回的字段值区分大小写,c#和Delphi的字段要一致

  5. P1219 八皇后

    题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...

  6. UI设计篇·入门篇·简单动画的实现,透明动画/旋转动画/移动动画/缩放动画,混合动画效果的实现,为动画设置监听事件,自定义动画的方法

    基本的动画构成共有四种:透明动画/旋转动画/移动动画/缩放动画. 配置动画的方式有两种,一种是直接使用代码来配置动画效果,另一种是使用xml文档配置动画效果 相比而言,用xml文档写出来的动画效果,写 ...

  7. leetcode答案 有效的括号(python)

    def isValid(s): if s and len(s) % 2 is 0: a = {')': '(', ']': '[', '}': '{'} l = [None] for i in s: ...

  8. 团队作业6—《Spring_Four》团队项目系统设计改进与详细设计

    一.修改完善团队项目系统设计说明书 a.分析<考信项目系统设计说明书>初稿的不足:数据库建模不足 b. 团队项目Github仓库中更新:https://github.com/gzyt/SR ...

  9. letecode242有效字母的异位词

    bool isAnagram(char* s, char* t) { ] = {}; ] = {}; int lenS = strlen(s); int lenT = strlen(t); ;i< ...

  10. 手眼标定eye-to-hand 示例:handeye_stationarycam_calibration

    * * This example explains how to use the hand eye calibration for the case where* the camera is stat ...