数组

作者: 又起名字 | 来源:发表于2018-05-29 17:02 被阅读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 先自加,再做 * 运算

    相关文章

      网友评论

          本文标题:数组

          本文链接:https://www.haomeiwen.com/subject/yadajftx.html