C# - 初识数组 033
liuian 2025-08-01 18:40 36 浏览
数组:是引用类型的数据结构;是一个存储同一数据类型元素有固定大小有顺序的集合;复杂数据类型的一种
数组的语法格式
//方式1
数据类型[] 数组名 = new 数据类型[数组的长度];
[]表示要声明的是一个数组//这里不是省略的意思
数据名:就是为数组起一个要求符合变量的命名规则的名字
new 数据类型[数据的长度] 表示在内存中开辟的数组长度
//声明数组时一定是可以表示正整数长度的数据如
//整形数字int,byte,或者可以转换为数组下标范围正整数的其他类型肉"0"等
//长度必须有,即使长度为0
//如 int[] nums = new int[0];开辟长度为0的数组
new 后面的数据类型必须与[]前面的类型一致
因为 数组声明时不存在隐式或显示类型转换
//int[] nums=new float[0]; //因此 此数组格式声明错误
//==============================
int[] numbers = new int[10];
表示在内存开辟了10个可以存储int类型的空间
这一组空间的名称叫 numbers
数组中的numbers[下标]被称之为数组的一个变量
数组中的每个变量又被称之为 元素
可以通过下标或索引器访问数组的元素
第一个元素的下标是0,最后一个元素的下标是9,也就是:数组的长度-1
通过访问下标可以对每个元素进行赋值,修改与使用
numbers[9]=10;
为数组的元素numbers[9]赋值为10//声明一个类型为int 名称为numbers 长度为10的 数组
int[] numbers = new int[10];
//通过下标为具体元素赋值
numbers[0] = 1;
numbers[9] = 10;
//打印输出数组元素
Console.WriteLine("numbers[9]={0}", numbers[9]);
//通过下标修改具体元素的值
numbers[9] = 100;//修改下标为9的元素其值变为100
//打印输出数组元素
Console.WriteLine("numbers[0]={0}", numbers[0]);
Console.WriteLine("numbers[9]={0}", numbers[9]);
Console.ReadKey();数组名称,数组元素与元素的值在内存中的表现形式与关系
数组元素的赋值范围与数组的类型有关,与数组的长度无关
byte[] nums = new byte[258];
//byte类型的范围为0-255
//声明数组长度 设置为258不会报错
//赋值/使用时不报错的情况
nums[258]=3;//与数组长度无关,即使声明数组长度为999999999
//赋值/使用时报错的情况
//超出byte的范围
nums[0]=256;//与赋值范围有关
//=================================
//不建议这么做 没意义
byte[] nums = new byte[999999];
byte数组常用于如文件流等数组的注意事项
1 声明什么类型的数组,数组中只能存储什么类型范围内(数组类)的数据; 如int类型的数组,其元素值只能赋值int类型,不能为其赋值其他类型的数据(除非可以转换为int类型)
由图中(行号33)可以看出只能赋值显示(强制)类型转换的数据,不能赋值隐式类型转换的数据
2 各个类型的元素都有自己类型的默认值
数组元素的默认值就是基本数据类型各自的默认值;单个使用的规则:声明一>赋值一>使用,必须赋初始值;基本数据类型放置在复杂数据类型中可以不必赋初始值
//单个使用
int num=6;//必须赋初始值后才能使用复杂类型:1)枚举就是一个枚举成员的第一个(底层就是int类型,本例中) 2)结构与数组就是自己成员变量各个的类型的默认值
class Program
{
enum MyEnum
{
男, 女
}
struct MyStruct
{
public string name;
public int age;
}
static void Main(string[] args)
{
//基本数据类型的默认值
int[] numbers = new int[1];//代表整形数值的与decimal类型 默认值为0
float[] fs = new float[1];//代表float,double 默认值为0.0
string[] s = new string[1];//代表string与object 默认值为null
char[] cs = new char[1];//默认值为0或ASCII码表的第一个
bool[] bs = new bool[1];//默认值为false
//复杂类型的默认值
MyEnum Gender;
MyStruct Info;
MyEnum[] gs = new MyEnum[3];//枚举类型数组
Student[] stus = new Student[3];//结构类型数组
}
}3 声明数组时必须确定数组的长度,长度一旦确定不可改变
上面数组的变形格式
//正确的格式
int[] nums2;//声明数组类型的变量
nums=new int[9];//比较常用
//错误的格式
int[] nums2=new nums;
nums[9];必须确定数组的长度:
1)声明数组时要确定该数组需要在内存中开辟多大的空间
2)数组在内存中开辟的是连续的一段存储空间
数组没有添加/删除元素的方法,因此长度无法改变;可以通过两个数组实现另一种意义的改变数组长度(了解即可)
//假设不想要某些数据
int[] nums1 = new int[5];
//只需要下标为0,2,4的数据有3个元素
int[] nums2 = new int[3];
//将需要的数据存储在新数组中
nums2[0]=nums1[0];
nums2[1]=nums1[2];
nums2[2]=nums1[4];4 使用下标访问元素时,下标也可以使用变量(必须在数组下标的范围内)
5 使用数组常见错误
1 数组元素所赋的值超出数组类型的范围,编程时VS会有提示,通过输入语句就会报错
2 赋值,访问时下标超出数组长度的范围
声明时的数字[255]表示数组长度是255,下标是0-254(长度-1)
另两种声明方式(了解即可)
//方式2 以元素个数定数组长度
//声明一个长度为3的数组
//等号右面一个大括号,括号中间每个元素用逗号隔开
//[]前面是什么类型,{}里面就必须使用什么类型的表示方式书写元素
//书写几个元素表示该数组长度就是多少
int[] nums={1,2,3};
string[] names={"zs","ls","ww"};//字符串数组 元素加双引号
//声明了有5个元素的char类型数组
char[] cs={'a','b','c','d','e'};//字符数组 元素加单引号
//其他类型以此类推
//=======================================
//方式3 声明时就给元素赋值初始化元素的值
//{ }在类或集合初始化时最常见
//类似的语法一般称为语法糖
//作用:简化编写代码
int[] nums=new int[]{1,2,3};//声明了一个长度为3的int类型数组
int[] nums=new int[3]{1,2,3};//[]中的长度可以省略
//==========================
//错误格式 []中确定了长度 但{}中元素多/少写
//编程时VS有提示
int[] nums=new int[3]{1,2};
int[] nums=new int[3]{1,2,3,5};反编译查看3种声明方式的区别
使用数组的益处:1)相当于一次声明多个数类型相同的变量 2)数组元素在内存的存储是连续的 3)可以使用循环进行操作
- 上一篇:C# 基础知识系列- 3 集合数组
- 下一篇:C#-循环数组结构体知识补充 055
相关推荐
- 分区助手分区教程(分区助手如何操作)
-
以老毛桃启动盘中的分区助手为例,使用步骤如下(调整分区大小):1、在主菜单界面用键盘方向键“↓”将光标移至“【02】运行老毛桃Win8PE防蓝屏版(新电脑)”,回车确定;2、鼠标点击开始图标,选择分区...
- 做启动盘用什么软件好(做启动盘的工具)
-
制作软件下载后,安装。运行是时候就有提示插入u盘。然后点击一键制作即可。至于工具哪个好,个人使用的熟悉度来决定,u盘系统盘制作工具功能几乎一样。
- qq对战平台老版本(qq对战平台在qq哪里)
-
1.打开任务管理器-进程。查找是否有cstrike.exe或hl.exe(CS名字.exe)。如果有的话。请点击结束进程。再试试。2.打开任务管理器-进程。查找是否有QQPet.exe(QQ宠物进...
- 电脑开机无限自动重启(电脑开机后自动重启无数遍是什么原因)
-
依次打开开始控制面板,打开系统安全系统,找到高级系统设置并打开,进入系统属性选择高级,找到启动和故障恢复点击设置,在弹出页面找到系统失败自动重新启动取消勾选并启动。2.键盘按住win+r打开运行框,...
- ghostxp32位下载(ghost win7下载32位)
-
你不需要直接加4G的,你再买一条2G同品牌型号内存加上去,组成4G内存就行,不过系统要改为Win764位系统,因为XP只能认3.25G内存,如果你想下载圣安地列斯游戏,并且使用的系统是Window...
- eset nod32 24位激活码(eset激活码生成器)
-
ESETNOD32Antivirus4的激活码是24位的例如M26D-0233-4W9Q-VSSB-D84G-JJJJ或V26D-0243-4W9Q-VSSB-D84G-JGFD(友情提示...
- 鸿蒙系统的优缺点(鸿蒙4.3和5.0哪个好)
-
一、鸿蒙系统的缺点鸿蒙最大的缺点应该就是生态了。鸿蒙系统依赖安卓生态无可厚非,前者毕竟是一款刚刚发布两年的新系统。而安卓,早在几十年前就已经上线,谷歌建设安卓生态也用了十多年的时间。在巨大的时间差面前...
-
- bios怎么格式化c盘(bios格式下怎么彻底格式化电脑)
-
步骤/方式1BIOS没有格式化硬盘的功能。对硬盘进行格式化,首先需要给硬盘分区并分配文件系统,BIOS不支持文件系统的识别,所以也不支持格式化的功能。步骤/方式2早期的计算机系统在BIOS里面曾经有过低级格式化的功能,但是低级格式化只是对硬...
-
2025-12-22 20:05 liuian
- 电脑开机显示屏显示蓝屏(开机后显示器蓝屏)
-
造成电脑蓝屏的原因主要有以下几点。1、电脑使用过度,温度过高过度使用电脑会导致电脑硬件发生损坏,系统超载,内部运算过多,cpu温度急剧升高,会发生系统错误。建议更换散热系统,更新“小风扇”设备,并合...
- 设置无线网密码步骤(如何设置无线网络wifi密码)
-
首先使用已经连接到网络的手机或电脑,在浏览器地址栏输入192.168.1.1或者192.168.0.1;输入管理员账号和密码,两个一般都是输入admin;点击【无线设置】,进入【安全选项】,在输入旧密...
- 下载优酷官方正版(下载优酷官方正版网站)
-
您好,直接打开浏览器或者打开手机的应用商城,然后输入该软件的名称然后搜索即可在搜索结果中下载安装即可,也可以下载一个市场类软件,常见的有安卓市场,机锋市场等,之后使用此款软件下载其他程序。优酷视频...
- iso文件安装器(iso安装程序)
-
不能。苹果手机是不能安装apk格式软件的,apk是安卓系统的安装包格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把androidsdk...
-
- 台式电脑重装系统按哪个键进入
-
不同品牌的设备按键是不同的1、如果原来电脑装一键还原软件,装系统时直接在启动画面选择重新恢复系统项即可;2、如需启动光盘或者优盘来重装系统,需要开机按启动热键,选择对应的按键即可调出启动菜单选择界面,在菜单中选择优盘或光驱,按回车,按提示进...
-
2025-12-22 17:55 liuian
- 戴尔笔记本电脑一开机就蓝屏
-
笔记本蓝屏可能是电脑硬盘故障,可以更换一个硬盘尝试。也可能是更新了驱动与修复漏洞补丁,可以进入安全模式将更新的驱动删除。有可能是内存条故障,可以把内存条取下来,用橡皮擦轻轻擦拭金手指,然后用毛刷将内存...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
