数组的定义和使用

一、一维数组的定义、初始化

1. 一维数组的定义

元素类型        数组名[常量表达式];

(1)一维数组是由元素类型、数组名和长度组成的构造类型。

(2)数组名必须符合C++标识符规则。

(3)常量表达式标识数组中元素的个数,称为数组长度。常量表达式的值必须为正整数且大于等于1。

(4)数组一经定义,数组长度就始终不变。

int A[10];
int B[10], C[15];
int E[10], m, n, F[15];

2. 一维数组的内存形式

 C++规定数组元素是连续存放的,即在内存中一个元素紧跟着一个元素线性排列。

 3. 一维数组的初始化

可以在一维数组定义时对它进行初始化,初始化的语法形式如下:

元素类型        数组名[常量表达式] = {初值列表};

int A[5] = {1,2,3,4,5}, B[3] = {7,8,9};
int C[5] = {1,8,9}; // 1, 8, 9, 0, 0
int D[ ] = {1,8,9}; //length = 3

若数组未进行初始化,静态数组的元素均初始化未0;在函数体内定义的动态数组,其元素没有初始化,为一个随机值。

二、一维数组的引用

数组必须定义后使用,且只能逐个引用数组元素的值而不能一次引用整个数组全部元素的值。

数组元素下标总是从0开始。

整个数组不允许进行赋值运算、算术运算等操作,只有元素才可以。

#include <iostream>
using namespace std;
int main()
{
        int i, A[5];
        for(i=0; i<5; i++)
        {
                cin >> A[i];
        }
        for(i=5; i>0; i--)
        {
                cout << A[i-1] << endl;
        }
        return 0;
}

三、多维数组的定义和初始化

元素类型        数组名[常量表达式1][常量表达式2][常量表达式3]...[常量表达式n];

int A[3][4];
int B[3][4][5];

 

 

 四、多维数组的引用

求矩阵的乘法A*B

#include <iostream>
using namespace std;
#define N 50

int main()
{
	double A[N][N], B[N][N], C[N][N];
	int m_A, n_A, m_B, n_B, m_C, n_C, i, j, k;
	do{
		cin >> m_A >> n_A >> m_B >> n_B;	
	}while(n_A != m_B);
	cout << "input A" << endl;
	for(i=0; i<m_A; i++) 
	{
		for(j=0; j<n_A; j++)
		{
			cin >> A[i][j];
		}
	}	
	cout << "input B" << endl;
	for(i=0; i<m_B; i++) 
	{
		for(j=0; j<n_B; j++)
		{
			cin >> B[i][j];
		}
	}
	
	m_C = m_A;
	n_C = n_B;
	for(i=0; i<m_C; i++)
	{
		for(j=0; j<n_C; j++)
		{
			for(k=0; k<n_A; k++)
			{
				C[i][j] += (A[i][k]*B[k][j]);
			}
		}
	}
	
	for(i=0; i<m_C; i++) 
	{
		for(j=0; j<n_C; j++)
		{
			cout << C[i][j] << " ";
		}
		cout << endl;
	}
	return 0;
} 

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值