第七讲 数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七讲数组
数组是可以同时储存多个同类型数据的单个数据类型,其中所有的数据可以通过数组的下标来访问,并且这些数据在内存中占用的是一块连续的存储空间。数组可以是一维、二维或者三维的。
●掌握数组的基本概念
●掌握定义和初始化数组的方法
●掌握访问数组元素的方法
●熟练使用System.Array 类的属性和方法
一、一维数组
一维数组的定义
:
数组必须“先定义,后使用”。定义一维数组的格式如下:
数据类型[] 数组名;
如int[] x;
注意:数据类型可以是任意数据类型,包括数值类型和引用类型;
数组名命名遵循C#变量命名规则;
int[] arry;//定义了一个名为arry的数组,这个数字可以存放多个整数,但是此时并没有为存储变量在内存中分配空间。
定义数组和C语言的区别:
C语言中:数据类型数组名[数组长度];在定义中包含了数组元素个数,这种定义意味着内存事先按数组长度分配空间,而C# 事先并不为数组元素分配空间,而是在使用数组的过程中动态的分配数组元素的个数,控制数组占用的内存的大小。
一维数组的初始化:
在C#语言中,定义数组后必须对其初始化(为数组分配空间)才能使用。初始化有两种方法:静态初始化和动态初始化。
1.静态初始化
如果数组包含元素不多,且初始数组元素已知,则可以采用静态初始化方法。
数据类型[] 数组名={元素1,元素2,元素3,。。。。。。。,元素n};
无需说明数组个数,系统自动计算分配数组所需的内存空间。
Int[] arry={1,2,3,4};
String[] str={“china”,”American”,”Korea”};
2.动态初始化
需要使用new 关键字将数组实例化一个对象,再为该数组对象分配内存空间,并为数组元素赋初值。
格式:数据类型[] 数组名;// 数组定义
数组名=new 数据类型[表达式]; //数组动态初始化
或者
数据类型[] 数组名= new 数据类型[表达式];
“表达式”代表数组长度,为整型表达式。
New 运算符用来为数组对象在内存中分配一定的空间。数据占据的内存空间由数组的数据类型和表达式的数值共同决定。
int[] arry;//定义一个名为arry的数组。
arry=new int[10];//为arry数组在内存中分配4*10=40个字节的存储空间,元素值为0.
或
int[] arry=new int[10];//定义一个名为arry的整型数组,并为其分配40个字节的空间。
也可以在初始化得同时赋其他初始值。
Int[] arry=new int[] {1,2,3,4};
注意:在数组初始化语句中,如大括号中已经明确列出了数组中的元素值,即确定了数组元素个数,则数组元素的个数(方括号中的数值)必须为常量,并且与数组元素个数一致。
Int i=4;
Int[] x=new int[4]{1,2,3,4}
Int[] y=new int[4] {1,2,3}
Int[] z=new int[i]{1,2,3,4}
利用动态初始化的方法,可以动态的修改数组的长度:
int[] x=new int[5];
int n=10;
x=new int[n];
一维数组元素的引用:
格式:数组名[下标];
例:给定10个数字:3,5,34,65,15,74,28,59,122,42,将它们存放在一个数组中,并将其按从小到大的顺序输出。
选择法:先找出10个数中最小数的数组元素位置,将此最小数与数组中的第一个元素对调;再从第2个数到第10个数中找出最小数,按同样的办法,将次最小数与第2个位置上的数对调。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int i, j, k, m;
int[] que = new int[] { 3, 5, 34, 65, 15, 74, 28, 59, 122, 42 };
for (i = 0; i < 10; i++)
{
k = i;
for (j = i + 1; j < 10; j++)
{
k = j;
if (que[k] < que[i])
{
m = que[i];
que[i] = que[k];
que[k] = m;
}
}
}
Console.WriteLine("输出排序后的结果:");
for (i = 0; i < 10; i++)
Console.Write("{0}\t", que[i]);
}
}
}
冒泡法:相邻的两个数比较,小的调前面。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{