牛骨文教育服务平台(让学习变的简单)
博文笔记

数组声明和赋值总结

创建时间:2018-03-18 投稿人: 浏览次数:216

声明数组

声明数组变量仅有一种语法,即:数据类型[] 变量名,比如:

string[] strs;

这句代码应该这样理解:

  • 变量strs的类型是数组
  • strs的每一项存放的数据是string
  • 变量strs还未被赋值

数组的赋值

我们知道,变量的三要素是:数据类型、变量名、值,看以下代码:

int[] nums;

这句代码,已经具备了变量的类型(int[])、变量名(nums),但还没有值。

给数组的赋值语法是:数组变量名 = new 数据类型[长度];

比如,给刚才定义的数组nums赋值,可以是如下的代码:

int[] nums;
nums = new int[5]; //给变量nums赋值为长度为5的int数组

值得注意的是,赋值语法中的数据类型必须和声明时的数据类型完全一致,因为它们都表示的是同一个意思:数组中每一项的类型。

根据之前变量的知识,变量可以在声明的时候直接赋值,因此,也可以使用下面的代码,在声明数组时对它赋值:

int[] nums = new int[5]; //声明一个数组nums,并给它赋值为长度为5的int数组

效果是完全一样的。

数组初始化器

数组初始化器是指:给数组赋值的同时,指定数组每一项的值,在很多时候,这样做可以简化我们的代码。

比如:

int[] nums;
nums = new int[3];
nums[0] = 2;
nums[1] = 5;
nums[2] = 1;

string[] strs = new string[2];
strs[0] = "Hello";
strs[1] = "World";

上面的这段代码定义了两个数组,并分别给数组赋了值,不仅如此,还为数组每一项赋了值。

使用数组初始化器,可以简化上面的代码如下:

int[] nums; //声明数组
nums = new int[3]{2, 5, 1}; // 使用数组初始化器,给数组赋值的同时指定它每一项的值

// 使用数组初始化器,给数组赋值的同时指定它每一项的值
string[] strs = new string[2]{"Hello", "World"};

代码是不是简洁了很多呢?只要是给数组赋值的时候,都可以使用数组初始化器。

值得注意的是,在使用数组初始化器时,数组长度必须和初始化的数量相同,比如,以下的代码都是错误的:

int[] nums1 = new int[3]{2,3};//数组长度为3,但初始化器中只有两项
int[] nums2 = new int[1]{2,3,1};//数组长度为1,但初始化器中有3项

更好的做法是,在使用数组初始化器时,不去指定数组长度,让编译器完成对数组长度的计算,比如:

//不指定数组长度,编译器会根据初始化器中的数量自动填充数组长度
int[] nums1 = new int[]{2,3};// 编译器会将该数组的长度设置为2
int[] nums2 = new int[]{2,3,1};// 编译器会将该数组的长度设置为3

数组的初始化器还有一种更加简化的写法,比如,上面的代码可以简化如下:

int[] nums1 = {2,3};
int[] nums2 = {2,3,1};

效果是完全一样的,只不过,这种极简的做法,仅能存在于声明数组时的初始化,下面的例子很好的说明了这一点:

int[] nums1 = {2,3}; // 语法正确

int[] nums2;
nums2 = {2,3,1}; //语法错误,极简的初始化器必须在声明时使用

int[] nums3 = new int[]{2,3};//语法正确

int[] nums4;
nums4 = new int[]{2,3,1}; // 语法正确
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。