CH05_数组
概述
定义:一组相同类型的数据的集合。
描述:
1.数组中的每个元素都是相同的数据类型
2.数组是由连续的内存位置组成的。
3.数组索引是从0开始
一维数组
语法:
1.数据类型 数组名[长度];
2.数据类型 数组名[长度]={值1,值2,值3...};
3.数据类型 数组名[]={值1,值2,值3...};
示例:
#include <iostream>
using namespace std;
int main() {
//方式1
int nums1[5];
nums1[0] = 23;
nums1[1] = 17;
nums1[2] = 35;
//方式2
int nums2[5] = { 12,35,100 };
//方式3
int nums3[]= { 12,35,100 };
//访问单个元素
cout << nums2[4] << endl;
//遍历所有元素
int length = sizeof(nums2) / sizeof(nums2[0]);
for (int i = 0; i < length; i++) {
cout << nums2[i] << endl;
}
//查看内存地址
cout << "数组首地址为:" << (int)nums2 << endl;
cout << "数组中第一个元素地址为:" << (int)&nums2[0] << endl;
cout << "数组中第二个元素地址为:" << (int)&nums2[1] << endl;
system("pause");
return 0;
}
二维数组
语法:
数据类型 数组名[行数][列数];
数据类型 数组名[行数][列数]={{值1,值2},{值3,值4}};
数据类型 数组名[行数][列数]={值1,值2,值3,值4};
数据类型 数组名[ ][列数]={值1,值2,值3,值4};
示例:
#include <iostream>
using namespace std;
int main() {
//方式1.数据类型 数组名[行数][列数];
int arr1[2][3];
arr1[0][0] = 11;
arr1[0][1] = 12;
arr1[0][2] = 13;
arr1[1][0] = 14;
arr1[1][1] = 15;
arr1[1][2] = 16;
//外层控制行数
for (int i = 0; i < 2; i++) {
//内层控制列数
for (int j = 0; j < 3; j++) {
cout << arr1[i][j] <<"\t";
}
cout << endl;
}
cout << "-------------------" << endl;
//方式2.数据类型 数组名[行数][列数] = { {值1,值2},{值3,值4} };
int arr2[2][3] =
{
{12,25,33},
{13,26,27}
};
//外层控制行数
for (int i = 0; i < 2; i++) {
//内层控制列数
for (int j = 0; j < 3; j++) {
cout << arr2[i][j]<<"\t";
}
cout << endl;
}
cout << "-------------------" << endl;
//方式3.数据类型 数组名[行数][列数] = { 值1,值2,值3,值4 };
int arr3[2][3] = {1,2,3,4,5,6};//输入数值数量超出范围,则会编译不通过
//外层控制行数
for (int i = 0; i < 2; i++) {
//内层控制列数
for (int j = 0; j < 3; j++) {
cout << arr3[i][j] << "\t";
}
cout << endl;
}
cout << "-------------------" << endl;
//方式4.数据类型 数组名[][列数] = { 值1,值2,值3,值4 };
int arr4[][3] = { 1,2,3,4,5,6,7,8 };//自动计算行数
//数组行数:(sizeof(a) / sizeof(int)) / (sizeof(a[0]) / sizeof(int))
//数组列数:(sizeof(a[0]) / sizeof(int))
int row = (sizeof(arr4) / sizeof(int)) / (sizeof(arr4[0]) / sizeof(int));
//外层控制行数
for (int i = 0; i < row; i++) {
//内层控制列数
for (int j = 0; j < 3; j++) {
cout << arr4[i][j] << "\t";
}
cout << endl;
}
cout << "-------------------" << endl;
//获取二维数组内存地址
cout << "数组首地址:" << (int)arr4 << endl;
cout << "数组第一行第一列:" << (int)&arr4[0][0] << endl;
cout << "数组第一行第二列:" << (int)&arr4[0][1] << endl;
cout << "数组第二行第一列:" << (int)&arr4[1][0] << endl;
system("pause");
return 0;
}