CPP入门06:数组

目录

一、数组的概述

二、一维数组

        定义方式:

        给数组进行赋值:

        数组名:

        用途:

三、二维数组

        定义:

 数组名:


一、数组的概述

        定义:就是指一个集合,存放了相同类型的数据元素。arr[4]数组中,arr被称为数组名,4被称为下标。可以通过下标来访问对应的数组元素。

        特点:

  • 数组中每个数据元素都是相同的数据类型
  • 数据是由连续的内存位置组成的

二、一维数组

        定义方式:

  1. 数据类型 数组名[数组长度];
  2. 数据类型 数组名[数组长度] = { 值1,值2 ... };
  3. 数组类型 数组名[ ] = { 值1,值2 ... }; (系统自动分配长度)
	//数据类型 数组名[数组长度];
	int arr1[5];
	//数据类型 数组名[数组长度] = { 值1,值2 ... };
	int arr2[5] = { 1,2,3,4,5 };
	//数组类型 数组名[ ] = { 值1,值2 ... }; (系统自动分配长度)
	int arr3[] = { 1,2,3 };

        给数组进行赋值:

因为数组可以通过下标进行访问,所以可以通过下标给对应的数组元素赋值。

注意:数组arr[n]的下标从0开始到n-1结束,如以下对arr[5]赋值,并通过for循环遍历输出:

	//赋值
	arr1[0] = 1;
	arr1[1] = 2;
	arr1[2] = 3;
	arr1[3] = 4;
	arr1[4] = 5;
	//for循环遍历输出
	for (int i = 0; i < 5; i++) {
		cout << arr1[i] << endl;
	}

        数组名:

        用途:

  • 可以统计整个数组在内存中的长度,如arr[]={...}的长度。
  • 可以获取数组在内存中的首地址

 获取整个数组在内存中的长度可以使用sizeof关键字(用于获取数据内存大小)达成目的。

	//可以统计整个数组在内存中的长度,如arr[]={...}的长度。
	int arr[] = { 1,2,3 };
	cout << "数组arr总共占据内存大小为:" << sizeof(arr) << endl;
	cout << "数组arr每个元素所占据的内存大小为:" << sizeof(arr[0]) << endl;//数组元素的数据类型相同。
	cout << "数组arr的元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;

	//可以获取数组在内存中的首地址
	cout << "数组arr的首地址为:" << (int)arr << endl;//将内存位置转为整型。
	cout << "数组arr第一个元素地址为:" << (int)&(arr[0]) << endl;
	cout << "数组arr第二个元素地址为:" << (int)&(arr[1]) << endl;

代码中&为取地址符号,指针的内容将会进一步认识。

同时数组名默认为常量,不可进行赋值操作。

三、二维数组

        定义:

        二维数组就是在一维数组上多建一个维度。(如教室排列从行的排序多加一个列的排序)

        定义方式:

  1. 数据类型[ 行 ][ 列 ];
  2. 数据类型[ 行 ][ 列 ] = {  { 数据1,数据2... } , {数据1,数据2...}  };
  3. 数据类型[ 行 ][ 列 ] = { 数据1,数据2... };
  4. 数据类型[ ][ 列 ] = { 数据1,数据2... };

第三种和第四种会由系统自动分配行与列。第二种可以提高代码可读性,更加直观。

	//数据类型 数组名[ 行 ] [ 列 ];
	int arr1[2][2];
	arr1[0][0] = 1;
	arr1[0][1] = 2;
	arr1[1][0] = 3;
	arr1[1][1] = 4;
	//数据类型 数组名[ 行 ] [ 列 ] = { {数据1,数据2...}  , {数据m , 数据n...} }
	int arr2[2][2] = { {1,2},{3,4} };
	//数据类型 数组名[ 行 ] [ 列 ] = { 数据1,数据2... }
	int arr3[2][2] = { 1,2,3,4 };
	//数据类型 数组名[  ] [ 列 ] = { 数据1,数据2... }
	int arr4[][2] = { 1,2,3,4 };

 使用for循环遍历其中一个数组:

	//使用for循环遍历其中一个数组
	for (int i = 0; i < 2; i++) {
		for (int j = 0; j < 2; j++) {
			cout << arr1[i][j] << endl;
		}
	}

 数组名:

        和一维数组一样,数组名可以查看其所占内存空间及其首地址。

        可以通过以下示例来获取对应的二维数组信息(以上面代码的arr1为例):

	//内存空间
	cout << "二维数组大小:" << sizeof(arr1) << endl;
	cout << "二维数组一行大小:" << sizeof(arr1[0]) << endl;
	cout << "二维数组元素大小:" << sizeof(arr1[0][0]) << endl;

	cout << "二维数组行数:" << sizeof(arr1) / sizeof(arr1[0]) << endl;
	cout << "二维数组列数:" << sizeof(arr1[0]) / sizeof(arr1[0][0]) << endl;

	//地址
	cout << "二维数组首地址:" << arr1 << endl;
	cout << "二维数组第一行地址:" << arr1[0] << endl;
	cout << "二维数组第二行地址:" << arr1[1] << endl;

	cout << "二维数组第一个元素地址:" << &arr1[0][0] << endl;
	cout << "二维数组第二个元素地址:" << &arr1[0][1] << endl;

结果如下所示:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值