【小雨学编程之C#】18.7 复杂数据类型-数组( 三 )


学会了数组的使用的调皮小伙伴会产生一个疑问 , 既然数组的初始化只是告诉计算机给数组分配空间 , 但是分配空间后并没有对其赋值 , 那么这时候的数组里面存储的是什么呢?
比如int[]a=newint[10]我们随意调用数组元素 , 比如a[2]会发现系统并没有报错 , 而是显示0 , 这是怎么回事?既然目测看不出什么名堂 , 我们就开启调试模式看看这时候 , 内存中到底有什么 , 我们在输出位置打一个断点 , 然后运行:
【小雨学编程之C#】18.7 复杂数据类型-数组
文章图片
我们看到此时内存中的scores中存储的都是0 , 那么我们将int换成double再看看:
【小雨学编程之C#】18.7 复杂数据类型-数组
文章图片
这时候scores中存储的也是0 , 我们换成string再看看:
【小雨学编程之C#】18.7 复杂数据类型-数组
文章图片
【小雨学编程之C#】18.7 复杂数据类型-数组】换成char再看看:
【小雨学编程之C#】18.7 复杂数据类型-数组
文章图片
换成bool再看看:
【小雨学编程之C#】18.7 复杂数据类型-数组
文章图片
于是我们得出结论 , 数组初始化后 , 系统会给对应数组每个元素依照数据类型的不同赋默认值:
数值型数组默认值是0
字符串型数组默认值是null(null在内存中表示空的意思 , 也就是没有引用任何东西的意思 , 后面的知识点中会介绍)
字符型数组默认值是空字符
布尔型数组默认值是false
最后需要强调的是 , C#数组不支持动态数组 , 也就是当数组声明初始化后 , 其中元素的个数就固定了 , 不能在程序运行过程中随意修改!
屏幕前的小伙伴你们学会了吗!