1、C++ 数组
数组用于将多个值存储在单个变量中,而不是为每个值声明单独的变量。
要声明数组,要使用方括号定义变量类型:
int myNum[6];
下面声明了一个包含int数组的变量。要向其中插入值,我们可以使用数组字面量,就是将值放在以逗号分隔的花括号内,例如:
int myNum[6] = {89,85,90,75,69,95};
要创建字符数组,可以编写:
char myName[10] = "wonhero";
2、访问数组中元素
可以通过数组索引来访问数组元素。
该语句访问myNum
中第一个元素的值:
例如:
int myNum[6] = {89,85,90,75,69,95};cout << myNum[0] << endl;// 输出89
注意:数组索引以0
开头:[0]
是第一个元素。 [1]
是第二个元素,依此类推。
3、修改数组中元素
要更改指定元素的值,可以使用数组索引来修改,
例如:
int myNum[6] = {89,85,90,75,69,95};cout << myNum[0] << endl;myNum[0] = 100;cout << myNum[0] << endl;
4、数组长度
在C++中,要找出一个数组有多少个元素,可以通过sizeof()
计算::
例如:
int myNum[6] = {89,85,90,75,69,95};cout << sizeof(myNum)/sizeof(myNum[0]) << endl;
5、循环遍历数组
可以使用for
循环遍历数组元素,并通过数组长度来指定循环应运行的次数。
下面示例输出nums
数组中的所有元素的三种方法:
1)下标法
#includeusing namespace std;int main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<=9;i++){ cout << nums[i] << endl; } return 0;}
2)指针遍历取值
#includeusing namespace std;int main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int i; for(i=0;i<=9;i++){ cout << *(nums + i)<< endl;// 这种写法和下标法其实是等价的,下标法也会转换为 * (nums + i),这种写法更加接近底层 } return 0;}
3)指针变量指向数组元素
#includeusing namespace std;int main(){ int nums[]={0,1,2,3,4,5,6,7,8,9}; int *p; for(p = nums;p<=(nums + 9);p++){ cout << *p << endl; } return 0;}
7、多维数组
多维数组是包含一个或多个数组的数组。
如果需要创建二维数组,需要将每个数组添加到其各自的大括号内:
例如:
int[][] myNumbers = { {1, 2, 3, 4}, {5, 6, 7} };
myNumbers
现在是一个以两个数组为元素的数组。
要访问myNumbers
数组的元素,请指定两个索引:一个用于数组,一个用于该数组内的元素。本示例访问myNumbers
的第二个数组(索引下标为1
)中的第三个元素(索引下标为2
):
例如:
int myNumbers[2][3] = { {2, 3, 4}, {5, 6, 7} };int x = myNumbers[1][2];cout << x << endl; // 输出 7
也可以在通过嵌套for
循环来获取二维数组的元素(需要指向两个索引下标):
例如:
int myNumbers[2][3] = { {2, 3, 4}, {5, 6, 7} };for (int i = 0; i < 2; ++i) { for(int j = 0; j < 3; ++j) { cout << myNumbers[i][j] << endl; } }