C++数组

来源:互联网 发布:c语言打印等腰杨辉三角 编辑:程序博客网 时间:2024/06/05 12:50

C++数组

 

声明:

一维数组: <数据类型>  <数组名> [常量表达式],常量表达式表示数组每一维所包含元素的个数。

二维数组: <数据类型>  <数组名> [常量表达式][常量表达式]

 

访问:

<数组名> [下标表达式]

<数组名> [下标表达式][下标表达式]

下表从0开始

比如 int intArr[30],就从intArr[0]intArr[29],编译器为这个数组分配了一块连续的存储空间,数组名实际上是这块存储空间的起始位置,指向首个元素的指针。

PS:为了保证编译效率,C++编译器不对数组下标进行越界检查,所以使用不当可能会出现run-time crash,因为对超过数组存储空间的访问是undefined的。

 

初始化:

double dArr[3]={90.0, 75.0, 85.0};

 

int a[2][3] = {2,4,6,8,10,12}; // a[i]的每个元素是一个int类型的3元数组)前3个对a[0]3个元素赋值,后三个对a[1]3个元素赋值。

const int size = 3;

int a[2][size ] = { {2,4,6 } , { 8,10,12} };// 第一个{}内对a[0]赋值...

 

声明时不初始化,数组元素的值是随机的(PS:这与变量初始化的规则一致)。初始化表达式里面优先对前面的元素赋值,后面元素的初始值为0

 

int a[2][3] = {2,4,6} // a[0][0] = 2, a[0][1] = 4, a[0][2] = 6, a[1][0] = 0, a[1][1] = 0,a[1][2] = 0

如果初始化表达式提供所有元素的初始值,数组第一维的长度可以省略。

double dArr[ ]={90.0, 75.0, 85.0};

int a[ ][3] = { {2,4,6 } , { 8,10,12} };

 

数组的特点:C++里的数组不如vector

1. 不能像普通变量那样整体拷贝或者赋值;

2. 不能整体作为参数传入函数,要么只能退化为指针,要么使用引用。

3. 不能作为函数返回类型(不是class类型,编译器不知其大小);

 

数组的数据类型可以是内置类型也可以是构造类型等,如果没有提供初始化函数,则数组元素的初始化与变量初始化的规则相同:

1. built-in typedefined outside the body of function(不是栈内)are initialized to zero

2. built-in type:  defined inside the body of functionundefined/ uninitialized

3. class type 无论在函数内还是函数外,元素由类的默认构造函数(如果有的话)初始化,如果无,元素必须只能被显式初始化。

 

因此除非我们显式地提供初始化函数,否则局部数组的元素(内置类型)都不会初始化,使用它们可能会导致未定义错误(除了赋值操作)。

 

字符数组

字符数组比较特别,可以使用{}方式初始化也可以使用字符串字面量(character string literal)来初始化

 

char ca1[] = {‘c’, ‘+’, ‘+’ }; // null character

char ca2[] = {‘c’, ‘+’, ‘+’ , ‘\0’ }; // 显式加null character

char ca3[] = “c++”; // 字符串字面量以null character结束,ca3自动加null

因此,char name[6] = “123456”;是错误的,因为加上null character7个字符

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 铜钱的字不认识怎么办 古钱币出手好烦怎么办 安装目录不可写怎么办 手机不支持exfat格式怎么办 windows7图标变大了怎么办 igs格式烂曲面怎么办 手机桌面文件夹打不开怎么办 苹果下载不了150怎么办 iphone6速度变慢怎么办 苹果手机微信打不开pdf怎么办 苹果手机打不开pdf怎么办 pdf文件超过了怎么办 pdf电脑删不了怎么办 联想笔记本摄像头横屏调竖屏怎么办 pdf文件打开失败怎么办 pdf复制文字乱码怎么办 电子发票乱码了怎么办 超星尔雅挂了怎么办 电脑应用双击打不开怎么办 电脑控制面板打不开怎么办 转换器无法打开文件怎么办 电脑文件无法打开怎么办 手机上jpg打不开怎么办 脸上全是黄褐斑怎么办 容易发胖的体质怎么办 感冒后一直咳嗽怎么办 感冒咳嗽怎么办小窍门 到了减肥平台期怎么办 减肥遇见平台期怎么办 脚冻伤了痒怎么办 冬天脚后跟冻了怎么办 夏天脚冻了怎么办 导航软件删了怎么办 婆婆爱打孩子怎么办 乙肝婆婆带孩子怎么办 婆婆不会教孩子怎么办 婆婆不会带孩子怎么办 公婆枪带孩子怎么办 婆婆要带孩子怎么办 婆婆太惯孩子怎么办 三个月宝宝溢奶怎么办