【C++从入门到熟练练习题】006 数组

 


一、前言

1、上节课回顾

上一次给大家讲了C++表达式与运算符优先级,表达式和优先级是很重要的内容,这回贯穿未来C++的学习中,当然如果优先级你不太确定,可以使用()来控制优先级,但是结合顺序就一定要掌握啦。

想要学好,最好的方式就是多想,多练习。

今天主要给大家讲的就是数组,数组很重要,很重要,有些内容比较简单,但是有些也比较难,因为是入门开始,我们不会说太难的。

2、上节思考题答案

已知a = 12,b = 3。

分析下面表达式的值,以及a和b的值:

b||a-4&&a/b
 
b&&a*b&&a+b
 
a+b/(a+b)&&b++
 
a+=b*=a-=b/=a-b

答案如下:

b || a - 4 && a / b       = 1   , a = 12 , b = 3

b && a * b && a + b   = 1   , a = 12 , b = 3

a+b/(a + b) && b++   = 1   , a = 12 , b = 4

a+=b*=a-=b/=a - b    = 12 , a = 12 , b = 0

 

二、重点知识介绍

1、数组概念

1.概念

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

2.数组元素性质

(1)数目固定。

(2)类型相同。

(3)排列有序。

3.数组特点

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,下标为0,最高的地址对应最后一个元素,下标为n-1(数组长度为n)。

 

2、数组操作

1.声明数组

在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量,如下:

type arrayName [ arraySize ];

注意:arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C++ 数据类型。

示例如下:

int array[10];

 

2.初始化

数组可以可以逐个初始化,也可以使用一个初始化语句进行初始化。示例代码如下:

        int array1[5] = { 1,2,3,4,5 }; //直接初始化
	int array2[5];  //逐个初始化
	for (int i = 0; i < 5; i++) {
		array2[i] = i;
	}

注意:

(1)大括号 { } 之间的值的数目不能大于在数组声明时在方括号 [ ] 中指定的元素数目。

(2)如果省略掉了数组的大小,数组的大小则为初始化时元素的个数。

(3)使用一个初始化语句初始化整型数组,若赋值个数小于数组长度,未赋初值的,默认为0。

对于(3),如果定义下面这个数组:

int array3[5] = { 1,2,3,4 };

则执行结果为:

 

3.访问数组元素

数组元素可以通过数组名称加索引进行访问。元素的索引是放在方括号内,跟在数组名称的后边。遍历数组,逐个访问数据元素示例如下:

        for (int i = 0; i < 5; i++)
	{
		cout << array1[i] << endl;

	}

3、n维数组

1.一维数组

只含有一对中括号,如下:

int array[10];

一维数组简单,没有太多需要讲的东西,后面有用到的地方再说明。

 

2.二维数组

含有两对中括号,如下:

    int array4[2][3];

这个二维数组的空间排布为:

array4[2][3]第一列第二列第三列
第一行array4[0][0]array4[0][1]array4[0][2]
第二行array4[1][0]array4[1][1]array4[1][2]

二维数组有两种赋值方法,一种是逐步赋值,需要用到循环嵌套,另一种方法就是直接赋值:

int array4[2][3] = { {1,2},{3} };

大括号嵌套小括号,第二层的大括号表示一行,大括号里面的数据表示列,从前往后,如果没有数值,则默认为0。即上面这个数组为:

array4[2][3]第一列第二列第三列
第一行120
第二行300

3.n维数组

通过一维数组和二维数组,我们能知道,对于n维数组,有n对中括号,一般最常见到三维,三维数组示例如下:

	int array5[5][2][3];
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值