数组

2018-05-29  本文已影响0人  又起名字

数组定义与初始化

数组名是一个常量,它代表着数组元素在内存中的起始地址。数组可以是一维数组也可以是N维数组,最常用的是一维数组和二维数组

数据类型   数组名 [常量表达式 1 ] [常量表达式 2 ] ......[常量表达式 N ];

数组的容量在定义时就必须固定,C++不存在动态定义大小的数组,例如下面这种就是错误的

int num;

cin >> num >> endl;

int a [num];

数组的初始化和定义与C没有太大差别

二维数组定义如下

float array [2] [3] ;  //定义一个2X3的浮点型数组

初始化与一维数组相同

float array [2] [3] = { 1,2,3,4,5,6 };

还可以采取分行赋值的方式

float array [2] [3] = { { 1,2,3 } , { 4,5,6 } };

对于数组容量较大的情况,可以选择其中部分元素进行赋值

float array [2] [3] = { { 1 } , { 4 } };

也可以跳过某行对其他行赋值

float array [2] [3] = { {  } , { 4 } };

也可以省略一维的赋值

float array [ ] [3] = { 1,2,3,4,5,6 };

数组与指针

引用数组中的元素可以使用下标,还有一种更经济高效的做法就是使用指针

int a [10] = { 1,2,3,4,5,6,7,8,9 };

int * p = a; 

* p++、*(p++)与 *(++p) 的比较

#include<iostream>

using namespace std;

int mian (int  argc, char* argv [ ] ) {

        int a [10] = { 0,1,2,3,4,5,6,7,8,9 };

        int * p;

        p = &a [0];

        cout << * (p++) << endl;

        p = &a [0];

        cout << * p++ << endl;

        p = &a [0];

        cout << * (++p) << endl;

        return 0;

}

结果如下:

0

0

1

Press any key to continue_


如果 p 当前指向数组 a 中的第i个元素,那么将有如下结论:

1,* (- -p) 与 a[ - -i ] 的作用相同,p 先自减,再做 * 运算

2,* (p- -) 与 a[ i- - ] 的作用相同,先进行 * p 运算,p 再自减

3,* (++p) 与 a[ ++i ] 的作用相同,p 先自加,再做 * 运算

上一篇下一篇

猜你喜欢

热点阅读