码迷,mamicode.com
首页 > 编程语言 > 详细

数组的初始化&缩窄转换

时间:2018-12-09 16:32:51      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:单元   []   style   缺省   变量赋值   转化   bsp   不包含   元素   

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的取值范围内

数组的初始化&缩窄转换

标签:单元   []   style   缺省   变量赋值   转化   bsp   不包含   元素   

原文地址:https://www.cnblogs.com/urahyou/p/10086366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!