一维数组
数组就是一组相同类型数据的集合。
1、定义:
元素类型 数组名[常量表达式];
int A[10];
注意:
(1)由元素类型,数组名和长度组成。
(2)数组一经定义,数组的长度始终不变。
int n;
cin>>n;
int A[n]//错误,n必须为常量。
(3)C++规定数组元素是连续存放的,即在内存中是线性排列。
2、一维数组的初始化
(1)元素类型 数组名[常量表达式]={初值列表}
int A[5]={1,2,3,4,5};
(2)可以不指定长度进行初始化
int A[]={1,2,3};
int len=sizeof(A)/sizeof(int);//求数组A的长度。
(3)若数组未进行初始化,静态数组的元素均初始化为0;
在函数体内定义的动态数组,其元素没有初始化,为一个随机值。
static int A[19];//默认各元素为0;
int A[3];//各个元素的值为一个随机数。
3、一维数组的引用
数组的使用,只能逐个引用数组元素的值而不能一次引用整个数组全部元素的值。
数组名[下标表达式];
(1)下标表达式的值只能为正整数。
(2)数组下标重视从0开始
int A[5]={1,2,3,4,5},x,i=3;
x=A[2];//引用
A[3]=10;//更改数组元素(地址为3)的值
(3)整个数组不允许赋值运算、算术运算等操作,只有元素可以。
二维数组
一、多维数组的定义
元素类型 数组名[常量表达式1][常量表达式2];
int A[2][3];
二、多维数组的初始化
1、初值按多为形式给出
元素类型 数组名[常量表达式1][常量表达式2]={{初值列表1},{初值列表2}};
int A[2][3]={{1,2,3},{4,5,6}};
2、初值按一维形式给出:
元素类型 数组名[常量表达式1][常量表达式2]={};
int A[2][3]={1,2,3,4,5,6};
3、`
int A[3][4]={{1},{1,2},{1,2,3}};
4、在提供了初值列表的前提下,多维数组定义时可以不用指定第1维的数组长度,但其余维的长度必须指定,编译器会根据列出的元素个数自动确定第1维的长度。
int A[][2][3]={1,2,3,4,5,6,7,8,9,10,11,12);//正确
int A[2][][3]={..........};//错误
三、多维数组的引用
1、数组名[下标表达式1][下标表达式2];
求矩阵的转置矩阵。
#include <iostream>
using namespace std;
int main()
{
int A[2][3],B[3][2];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cin >> A[i][j];
}
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout<< A[i][j]<<" ";
B[j][i] = A[i][j];
}
cout << endl;
}
for (int a = 0; a < 3; a++)
{
for (int b = 0; b < 2; b++)
{
cout << B[a][b]<<" ";
}
cout << endl;
}
return 0;
}