java数组比较的头文件_Java和C++的数组比较

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::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::value << endl; // 返回第0维的长度,3

cout << std::extent::value << endl; // 返回第1维的长度,2

注意:std::extent的声明如下:

template

struct extent;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值