C++学习笔记之数组创建和初始化

创建数组

数组创建声明指出以下这三点:

   (1)元素值的类型 ; 
   (2)数组的名字;  
   (3)数组元素的个数.

注意:int arr[ArraySize]中ArraySize的取值只能为以下几种:

   (1)普通整型常数,比如1,2等;
   (2)宏定义标识,如下:
         #define MAXSIZE 100
         int arr[MAXSIZE] = { 0 } ;
   (3)const值, 如下:
         const int size_arr = 1;
         int arr[size_arr] = { 0 };
   (4)常量表达式,比如sizeof(double)*3.

数组初始化

数组初始化规则:

(1)只有定义数组的时候才能初始化,此后不能使用;

	//正确初始化
	int arr1[3]={1,6,10};    
	//以下为错误的初始化
	int arr2[2];
	arr2[2]={0,3};
	
(2)不能将一个数组赋给另一个数组;

	//错误示范
	int arr1[3]={1,2,3};
	int arr2[3];
	arr2=arr1;
	
(3)初始化数组时,给的值可以少于数组元素个数,这时其他元素设为0;

	//arr的前两个元素为1,6,后两个元素为零
	int arr[4]={1,6};

(4)初始化时方括号“[ ]”内可以为空,这个时候你给多少值,数组长度就为多少。

	//此时数组长度为3,当然这种初始化方式并不好,尽量不要使用
	short array[]={1,3,5};

C++11后新增数组初始化方法

C++11使用大括号 “{ }” 初始化,即列表初始化作为一种通用的初始化方式。

(1)首先,初始化的时候可以省略等号“=”;

    double earnings[5]{1.28e6, 1.35e6, 1.32e6, 1.22e6, 1.36e6};

 (2)大括号内可以不包含任何东西,表示都设为零;

    unsigned int counts[10]{};

(3)列表初始化不能缩窄转换(大类型赋给小类型时,产生数据赋值异常)。
    
    //3.0为double类型,显然赋给int时出现缩窄转换,时错误的
	int arr[3]{1,22,3.0};
	
	//1111111超出char取值范围,错误
	char symbol_toy[2]{ 'a', 1111111 };
发布了5 篇原创文章 · 获赞 5 · 访问量 155

猜你喜欢

转载自blog.csdn.net/Phil0624/article/details/104118124