章节
问答
课签
笔记
评论
占位
占位

C#的声明数组和赋值

编程中有这样一种情形:我们需要存储多个同类型数据。比如,保存 1600 个学生的年龄。是否需要声明 1600 个 int 类型的变量?过了一年,学生们长了 1 岁,是否需要给每个变量重新赋值?这件事情,想想就怕怕。好在C#中有一种数组,专门存储一组相同类型的数据。数组的声明和初始化语法如下:

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

注意:数组名像变量名一样要遵循标识符的命名规则;长度必须是整数

下面我们来比较变量和数组的声明与初始化,右边是在内存中为变量和数组分配空间的示意:

对比变量 x 和数组 y 就会发现,数组 y 中其实包含了 3 个 double 类型的变量,为什么是 3 个?因为初始化数组时在 [ ] 中声明的长度为 3 。既然都在数组 y 中,所以 3 个变量(应该叫数组元素)的名字都叫 y ,为了区分它们,按照顺序给它们加上索引 [0]、[1]、[2] 。请注意:数组的索引从 0 开始递增。那么,数组 y 中 3 个元素的名字就变成了 y[0]、y[1]、y[2] 。最后再注意一点:数组经过初始化以后,数组元素有默认的初始值, double 类型为 0.0 , int 类型为 0 , char 类型为 'a' , bool 类型为 false , string 类型为 null 

数组元素的赋值与普通变量相同。下面的示例中,我们声明了一个长度为 3 的 string 类型数组,逐个赋值,然后打印:

上例中,需要注意的是元素的索引,数组元素索引从 0 开始递增,所以长度为 3 的数组,其元素索引为 [0]、[1]、[2] 。

如何知道一个数组的长度呢? 数组.Length 属性会返回数组的长度(即数组元素的个数)。请看下面的例子:

代码中的 friends.Length 会返回 friends 数组的长度,请看运行结果:

任务

使用数组,比较容易出错的是数组的长度和元素索引,请在右边代码的第 11 行插入代码,完成数组初始化;在第 13、14、15、16 行填写元素索引完成赋值;在第 18 行填写索引,完成输出。

?不会了怎么办

数组长度为 4 、类型为 int ,所以第 11 行应该为:

int[] age = new int[4];

数组元素索引从 0 开始递增,所以第 13 - 16 行应该为:

            age[0] = 18;
            age[1] = 20;
            age[2] = 23;
            age[3] = 17;

第 18 行应该为:age[0],age[1],age[2],age[3]);

||
1
2
using System;
using System
    .Collection
    s.Generic;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 爱吃鱼焖豆腐的H先生
小问题,注意占位符方式一Console.Write("平均分是{1},{0}", "高于平均分的有: ", avg);方式二Console.Write("平均分是{0},高于平均分的有: ", avg);

最新回答 / qq_慕的地6528064
new对象 ,c#面向对象这是必学的!在方法类中,除了静态类Static不用new,其他的类都要new

最新回答 / 慕后端9371514
你要打印的是friends数组的内容的话,用for循环遍历每个元素。你现在的写法,只是返回了数组个数给你输出的字符串。如果去掉Length的话,默认返回给你的是第一个元素。

最新回答 / qq_慕的地6528064
double[] y=new double[3];这句话,是初始化1个double类型的数组,这个数组里面有3个数,y[0],y[1],y[2],这3个,但是没有赋值,这3个都是空的,或者为0的

最新回答 / qq_成败萧何_0
字符数组的默认值为 空字符串,而不是null或'a',http://blog.csdn.net/lj_2_0_2/article/details/48979333

最赞回答 / ufan0
慕课网关于编程语言的基础语法教程几乎都是这个模式,视频讲解+敲代码练习。我个人觉着这样更好,一来更快(视频慢),二来接受的更好更扎实。

最新回答 / 梦想天空分外了蓝
多敲几遍就会了

最新回答 / Skyemmmmmm
提交不了,用VS试试是不是能获得正确答案.

已采纳回答 / 一念征途
你好,有时会因为网络繁忙等原因,代码会提交不上,可以隔断时间再提交试试,多提交几次就可以了。如果需要检查下你的代码正不正确,可以安装个visual studio(简称VS),在visual studio上运行看下结果。祝你学习顺利!

已采纳回答 / qq_友人A_15
age[]应该是一个int类型数组,输出时前面要加{0},{1},{2},{3},然后再加上age[0],age[1],age[2],age[3].  如果直接用age[0],age[1],age[2],age[3]是默认string类型

最赞回答 / qq_MissChan_0
C#数组的五种声明方式一、声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例int[] intArray;intArray = new int[10];注:数组的引用必须以相同或相关类型实例化,数组初使化默认值,值类型为0,引用类型为null 二、声明一个数组引用并对他进行初使化,该数组引用被立即赋予一个数组的新实例。int[] intArray = new int[10]; 三、声明一个数组,初使化数组引用,并给数组元素赋值int[] intArray = new int[3] {1,2...

最新回答 / qq_艾多比_五色鸟动漫_0
我的也报错static void Main(string[] args)        {            int[] age = new int age[4];            age[0] = 18;            age[1] = 20;            age[2] = 23;            age[3] = 17;            Console.WriteLine("四名同学的年龄是:{0}、{1}、{2}、{3}", age[0], age[1], a...

已采纳回答 / qq_人生一笑而过_04126188
一般的索引都说默认为从0开始。在支持指针的语言中,标号被视作是偏移量,因此从0开始更符合逻辑

已采纳回答 / Davids
你并没有对整型数组age[]进行声明。<...code...>
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言