C#数组的定义,不定长的数组?
首先,在这里我要说明的是,C#中,定义了数组,那么就必须为其指定长度,且他的长度确定,不能够更改。一旦定义一个数组,那么操作系统就在内存中给这个数组指定了一块内存,他是不支持动态分配存储空间的。能够动态分配存储空间的是集合。下面给出几个数组的定义;
int[] number =new int[10];//定义了一个长度为10的int型数组,没有给元素赋值,所有的元素默认值为0
int[] number1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//定义了一个长度为10的int型数组,且给元素赋初始值为1,2,3,4,5,6,7,8,9,10
在这里,我打印了一下number的值,给大家看看
for (int i = 0; i < number.Length; i++)
{
Console.WriteLine("数组number第{0}个元素的值为:{1}",i,number[i]);
}
打印结果:

能够迷惑人的一个应该是这个:
int[] number2=new int[]{};//我以为这个是不定长的,特意输出了一下他的长度,你们看结果
他的长度为0,我还给他赋了一下值,以为能增加长度,结果报一下错

还有一个应该是这个:int[] number3=null;
这个都没有初始化,在你初始化的时候照样要指定长度。
二维数组的定义:
int[,] number4 = new int[,] { { 1, 2, 3 }, { 1, 2, 3 } };//定义一个2*3的数组,并为每一个元素赋初值
int[,] number5 = new int[2, 3];//定义一个2*3的数组,没有为元素赋初值
int[][] number6=new int[2][]{new int[]{1,2,3,4},new int[]{1,2,3,4}};//交错数组
可能有些理解不正确,如有错误,请大家指出,我们共同讨论。
C#数组的定义,不定长的数组?的更多相关文章
- C语言对"不定长"字符串数组的遍历
一般来说,c语言的数组的初始化可以通过三种方式: {0},在声明时使用,如 int a[10]={0} 使用memset, memset(array,0,sizeof(array)) 用for循环赋值 ...
- c语言中数组的定义和java中数组定义的一些区别
感谢原文:https://blog.csdn.net/gzwdz778/article/details/79799408 一维情况下: c中,数组的声明需要给出数组的维数,比如: int arr[5] ...
- 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
#include<iostream> #include<cstdio> #include<string> #include<vector>//不定长数组 ...
- C 语言字符数组的定义与初始化
1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...
- JAVA数组的定义及用法
数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; ...
- JAVA_SE基础——21.二维数组的定义
2 二维数组的定义 基本与一维数组类似 //定义一个3行5列的二维数组 //方法1,先new对象,然后再初始化每个元素 int[][] a = new int[3][5]; a[0][0]=1; a[ ...
- Java——数组的定义与使用
数组的定义与使用 1.数组的基本概念 (1)数组的动态初始化: 数组首先先开辟内存空间,而后再使用索引进行内容的设置,这种定义数组的方式称为动态初始化 数组是引用数据类型,存在有内存分配问题.在使用前 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- STL之vector(不定长数组)
vector就是一个不定长数组,另外它把一些常用操作“封装”在了vector类型内部.例如,若a是一个vector,可以用a.size()读取它的大小,a.resize()改变大小,a.push_ba ...
随机推荐
- php71 gdnz
更新yum库:yum updat yum install epel-release yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel ...
- <input type="date">设置默认当前日期
日期选择器如下: <input type="date" id="start_date" name="start_date"> 注 ...
- React Native 首次加载白屏优化
RN首次加载都会有个白屏过程,一般都会有500ms+的白屏时间,原生页面开发同样的页面会能够快速显示而在RN页面中有个明显的等待过程,这个会影响用户体验. 1.使用过渡页面 简单处理可以在白屏过程中加 ...
- linux用户和组
1.用户隶属于用户组的. 2.用户与用户组配置文件 1)用户组配置文件 /etc/group 第一列:用户组的组名 第二列:组密码(真正的密码存储在了gshadow中) 第三列:用户组组ID,用户组唯 ...
- Spark设计思想浅析
Spark is no rocket science!——博主 了解分布式计算的朋友,一定知道DAG这样一个概念.其实我接触DAG也是在学习MapReduce时了解到的.(具体可查阅<大数据日知 ...
- tp5在apache下能访问,但放到nginx下报404
index index.php index.html index.htm; if ( -f $request_filename) { break; } if ( !-e $request_filena ...
- Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数
================================================== 1.While Controller之前有一个BeanShell Sampler,用于Init N ...
- DB2通用数据库性能调整的常用方法
DB2通用数据库性能调整的常用方法 DB2通用数据库性能调整的常用方法 Agenda 统计值更新--runstats 调整Buffer pool 调整日志缓冲区大小 应用程序堆大小 排序堆大小 ...
- Mybatis Blob和String互转,实现文件上传等。
这样的代码网上有很多,但是本人亲测有bug, 下面是我写的代码.望参考 @MappedJdbcTypes(JdbcType.BLOB) public class BlobAndStringTypeHa ...
- Windows Server 2012如何实现双网卡绑定
在windows server 2012 之前我们在服务器上如果要实现双网卡绑定则需要向服务器厂家所要相应的软件,但是现在强大的windows server 2012的到来使我们省去了所有的麻烦,因为 ...