一、什么是数组

数组用于存储若干相同类型的数据。在本章将介绍什么是数组以及数组的使用方法。了解数组之
后,将学习 foreach 循环以及数组的应用。

数组是一种数据结构,包含同一种类型的多个元素。也就是说,数组是用于存储多个相同类型数
据的集合。

假设现在有这样的需求,接收 10 位学生的计算机成绩,最后输出每个学生的成绩以及计算平均
分。按照我们学习过的知识,可以写出如下的代码来存储每个学生的成绩:

int n1,n2,n3,…,n10; //定义10个变量

其实从这句代码中,我们可以看出这样的缺点:所需要的变量太多,如果人数是 100 个,那么这
种写法更加不切实际。我们就需要使用数组来存储这样的同种类型的多个数据。

二、一维数组

C#支持一维数组、多维数组等。在实际应用中,一维数组被广泛使用。

. 数组的声明

一维数组声明的语法如下:

数据类型就是 int、char、float、double、string 等,代表了整个数组存放的元素的类型。数组

名称由用户自定义,不过跟变量名的取名一样,也要遵循命名规则,如下代码:

char[] chs; //定义了一个字符类型数组chsint[] nums; //定义了一个int类型数组nums

2.2. 数组的初始化

C#中的数组只有定义是不够的,数组必须初始化后才能使用。数组的初始化有几种常见的方式:

(1)指定数组存储的元素序列,语法格式如下:

数据类型 [] 数组名称 ={ 值 1, 值 2, 值 3, …, , 值 n};

(2)指定数组的长度,使用 new 关键字初始化数组,语法格式如下:

数据类型 [] 数组名称 =new 数据类型[ [ 长度 ];

数组的长度,代表数组存储元素的个数,可以是常量或变量,但如果是变量,变量必须先赋值。

在使用数组过程中,下面的写法都是正确的。

int[] a1={1,2,3}; //第一种方式,长度为3(因为初始化了3个值)int[] a2=newint[4]; //第二种方式,长度为4int[] a3=newint[4]{1,3,5,7}; //两种形式的结合,数组长度必须和元素个数匹配int[] a4=newint[]{1,2,3,4,5}; //初始化了元素,长度可以省略

下面列举了一些可能出现的错误写法。

int arr1[]=newint[5]; // []的位置不对int[] arr2=newint[5]{1,2,3}; //数组长度和元素个数不匹配int[] arr3=newstring[5]; //左右的数据类型不一致

. 数组元素的访问

在 C#中,对数组的访问即是对其元素的访问。比如有这样的一个数组:

int[] array={10,20,30,40,50};

我们如何去访问里面的元素呢?在内存中,一维数组的元素是按照顺序来存储的,如图所示:

每个数组元素在数组中都有一个顺序号,称为 索引或 下标。对数组元素的访问,我们只要知道数

组的名字以及元素在数组中的索引即可。访问数组元素的格式如下:

对于这个 array 数组,array[0]就是第一个数 10,array[1]就是第二个数 20,依次类推,
array[4]就是最后一个数 50。

小贴士:索引的范围是从 0 到“长度-1”之间。索引是不能自定义的。

知道了数组元素的访问方式,我们可以对数组元素进行依次赋值,如下代码:

int[] arr=newint[3];
arr[0]=10;
arr[1]=20;
arr[2]=30;

当然,这种写法进行大量的赋值时,显得较麻烦,不如初始化方便。

三、算法及其实现

C# action 返回值_C#编程基础第五章:数组 - 张果相关推荐

  1. Java基础-第五章(数组高级)

    一.方法参数的值传递机制 Java方法的参数传递只有一种: 值传递,所谓值传递,就是将实际参数值的副本,传入方法内,而参数本身不会收到任何影响; main方法的数组参数 public class He ...

  2. 《Python编程快速上手——让繁琐工作自动化》——第一部分 Python编程基础 第1章 Python基础 1.1 在交互式环境中输入表达式...

    本节书摘来自异步社区<Python编程快速上手--让繁琐工作自动化>一书中的第1章,第1.1节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区"异步 ...

  3. WPF编程基础入门 ——— 第二章 XAML

    XAML 简述 XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)是微软公司创建的一种新的描述性语言,用于搭建应用程序用户界面.XAML实 ...

  4. 定义一个带参带返回值的方法,实现输出随机数数组

    public class mains { public static void main(String[] args) { // 创建对象,对象名为hello mains hello = new ma ...

  5. 1.8 编程基础之多维数组 11 图像旋转 4分 python

    http://noi.openjudge.cn/ch0108/11/ """ 1.8 编程基础之多维数组 11 图像旋转 4分 http://noi.openjudge. ...

  6. 1.8 编程基础之多维数组 09 矩阵乘法 6分 python

    http://noi.openjudge.cn/ch0108/09/ """ 1.8 编程基础之多维数组 09 矩阵乘法 6分 http://noi.openjudge. ...

  7. 1.8 编程基础之多维数组 22 神奇的幻方 python

    http://noi.openjudge.cn/ch0108/22/ """ 1.8 编程基础之多维数组 22 神奇的幻方 http://noi.openjudge.cn ...

  8. 1.8 编程基础之多维数组 08 矩阵加法 python

    http://noi.openjudge.cn/ch0108/08/ """ 1.8 编程基础之多维数组 08 矩阵加法 http://noi.openjudge.cn/ ...

  9. 1.8 编程基础之多维数组 04 错误探测 python

    http://noi.openjudge.cn/ch0108/04/ """ 1.8 编程基础之多维数组 04 错误探测 http://noi.openjudge.cn/ ...

最新文章

  1. (C++)1045 快速排序 非满分
  2. pta 输出三角形字符阵列_PTA实验6-8 简单计算器 (20分)
  3. 网络推广中常见的网站建设细节中有哪些重点值得网络推广专员重视?
  4. SpringAOP 相关知识点总结
  5. annotation - SuppressWarning
  6. 用OpenSSL编写SSL,TLS程序
  7. 全国计算机二级公共知识点,全国计算机二级公共基础知识知识点
  8. ajax请求数据 ztree_ajax 异步获取数据填充到表格显示(ajax) 文档(Options API) DataTables中文网...
  9. Java对象锁和类锁全面解析(多线程synchronized关键字)
  10. 【bzoj2219-数论之神】求解x^a==b(%n)-crt推论-原根-指标-BSGS
  11. 【数学建模】基于matlab GUI彩票仿真系统【含Matlab源码 1501期】
  12. 基于NAR神经网络的时间序列预测
  13. Atmel Studio 编译no such file
  14. DL | TensorFlow代码调试
  15. 7-3 求最小码距(完整版) (10 分)
  16. uvalive 6528(DAG,递推,想法/bitset, 好题)
  17. 计算机毕业设计之java+ssm基于web的志愿者招募网站
  18. RoboMaster 2020机甲大师对抗赛飞手理论测评通过名单
  19. 2022届互联网校招研发薪资汇总,都是钱哇~
  20. 基于RNN的英文姓名的性别预测

热门文章

  1. perl 模块使用范例
  2. Linux 中 which、whereis、locate、find的区别
  3. html5怎么做相册影集,照片制作视频软件|狸窝照片制作视频软件 如何用照片制作视频...
  4. 网桥调用iptables规则的善后处理
  5. 2014去哪儿网几道题
  6. Oracle 实验一:Oracle11g的安装与管理工具
  7. VisionPro之脚本(一文读懂VisionPro脚本原理与使用方法)
  8. java 轻量级 job_oxygen: 一个轻量级Java框架,包含ioc、aop、config、cache、job、Jdbc、web等...
  9. python论文结论_Python学习总结
  10. 电脑桌面显示不出任何应用程序如何解决?