可一次性存储多个相同类型的变量,(这里区别于结构,它是一次性存储多个不同类型的变量)
语法:
数组类型[ ] 数组名 = new 数组类型[ 数组长度 ]
当声明了一个数组,其原理如下:
(右图从9到0是数组的索引)
注意:
(1)如果数组的长度一旦固定,程序运行中不能修改;
(2)对于int类型的数组,默认的初始值都为0
对于string类型的数组,默认初始值都为null(null是没有在内存空间中)
对于bool类型的数组,默认初始值都为false
(3)数组的声明方式:
int[] arr = {1,2,3,4,5}
// 或
int[] arr = new int[5]
// 或
int[] arr = new int[3] {1,2,3}
// 或
int[] arr = new int[] {1,2,3,4}
小练习:
1、逆序数组:
(1)下边主要考察两个变量交换,借用一个中间变量;
(2)交换的规律是:交换次数 - 永远都是数组长度除2,如:数组4个元素,交换2次即可,6个元素交换3次,··· ···
class Hello
{
static void Main()
{
// 反转数组元素
int[] nums = { 1, 2, 3, 4, 5};
for(int i = 0; i < (nums.Length / 2); i++)
{
int temp;
temp = nums[nums.Length - (i + 1)];
nums[nums.Length - (i + 1)] = nums[i];
nums[i] = temp;
}
for (int i = 0; i < nums.Length; i++)
{
Console.WriteLine(nums[i]);
}
Console.ReadLine();
}
}
2、冒泡排序:
class Hello
{
static void Main()
{
// 冒泡排序
int[] nums = { 1, 2, 3, 4, 5};
for(int i = 0; i < nums.Length; i ++)
{
for(int j = i+1; j < nums.Length; j ++)
{
if(nums[i] < nums[j])
{
int temp;
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
for(int i = 0; i < nums.Length; i ++)
{
Console.WriteLine(nums[i]);
}
Console.ReadLine();
}
}
3、对数组升序或降序:
c#中提供了2个内置方法:
(1)Array.Sort(arr) // 只能对数组做升序排列
int[] nums = { 1, 2, 3, 4, 5};
Array.Sort(nums); // 升序
(2)Array.Reverse(arr) // 对数组进行反转