所谓数组:就是一个集合,里面存放着相同类型的数据元素。
特点:里面存放的数据具有相同的数据类型;数组是由连续的内存位置组成的。
1.一维数组的定义
三种方式:
- 数组类型 数组名[数组长度];
- 数组类型 数组名[数组长度] = {值1,值2,...}
- 数组类型 数组名[] = {值1,值2,...}
int a[3]; a[0] = 1; a[1] = 2; a[2] = 3; int b[] = { 1,2,3 }; int c[4] = { 1,2,3,4 };
查看数组的地址以及数组中元素的地址:
#include <iostream> using namespace std; int main() { int c[4] = { 1,2,3,4 }; cout << "数组c的地址为:" << (int)c << endl; for (int i = 0; i < 3; i++) { cout <<"数组中"<<c[i]<<"的地址为"<<(int)&c[i]<<endl; } system("pause"); return 0; }
输出:
在c++中没有获取数组长度的函数,需要自己定义:
int length = sizeof(arr)/sizeof(arr[0]);
数组应用之冒泡排序:
#include <iostream> using namespace std; int main() { int c[] = {4,2,8,0,5,7,3,1,9}; int length = sizeof(c) / sizeof(c[0]); for (int i = length-1; i>=0; i--) { for (int j = i - 1; j >= 0; j--) { if (c[i] < c[j]) { int tmp = c[i]; c[i] = c[j]; c[j] = tmp; } } } for (int i = 0; i < length; i++) { cout << c[i]; } cout << " "; system("pause"); return 0; }
输出:
2.二维数组的定义
四种定义方式:
- 数据类型 数组名[行数] [列数]
- 数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}}
- 数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4}
- 数据类型 数组名[][列数] = {数据1,数据2,数据3,数据4}
int a[2][3]; int b[2][3] = { {1,2,3},{4,5,6} }; int c[2][3] = { 1,2,3,4,5,6 }; int d[][3] = { 1,2,3,4,5,6 }; //int d[2][] = { 1,2,3,4,5,6 };是非法的
使用第二种更直观。