数组的初始化&缩窄转换
1.初始化:
初始化就是在声明变量的同时给变量赋值,而不是声明后再赋值。
先声明,后赋值:
int a; //先声明,由于没有初始化,所以当前a的值是变量a创建前,相应的内存单元中保留的值,是未知的 a = 1; //后赋值,此时a得到赋值,有了明确的值
声明的同时赋值(初始化):
int a = 1; //为变量a开辟内存空间的同时把该内存空间的值改写成1,此时a的值是明确的
2.缩窄转换:
①将较大的浮点类型转化为较小的浮点类型:如将double转换成float,此举将会导致精度(precision)降低,值可能超出目标类型的取值范围,在这种情况下,结果将是不确定的。
②将浮点类型转换为整形:此举将会导致小数部分丢失,原来的值可能会超出目标类型的取值范围,再这种情况下,结果将是不确定的。
③将较大的整形转化为较小的整形:如将long转换位short,原来的值可能超出目标类型的取值范围,通常只复制右边的字节。
3.数组的初始化
①可以使用大括号初始化:
如:int arry_1[10]={1,2,3,4,5,6,7,8,9,10};
②大括号里可以不包含任何东西:
如:int arry_2[10]={}; //所有元素都将被初始化为0.
③数组长度可以缺省:
如:int arry_3[]={1,2,3,4,5}; //此时数组长度等于初始化值表中元素的个数,5
④列表初始化禁止缩窄转换:
如:long arry_4[]={3,5,3.4}; //错误,不能把double型转换为long型
char arry_5[]={'a','b',23333333}; //错误,23333333超过了char变量的取值范围
char arry-6[]={'a','c',20}; //正确,20在char的取值范围内
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!