• 定义数组类型


    int arrayaa[10];

    这个表示我定义了一个int型数组,数组名字叫arrayaa,这个数组里面有10个int型数据。

    那如果前面加上一个typedef,那么意思就完全变了

    typedef int arrayaa[10];

    表示定义了一个名字叫 arrayaa的数组类型,这个数组类型的元素类型为int,且含有10个int型数据(元素)。

    同样的道理,我也可以定义一个char类型,一个double类型等等,

    我可以利用这个数组类型,去定义新的数组

    举个例子

    int main(void)
    {
        typedef int arrayaa[10];
        arrayaa a1;
        for (int i = 0; i < 10; i++)
        {
            a1[i] = i+1;
        }
        cout<<a1[4]<<endl;
    }

    我定义了一个数组类型,名字叫arrayaa,然后利用这个数组类型定义了一个数组,名叫a1

    接下来对a1进行了赋值操作,然后打印a1里面的第五个数,输出为5.

    然后看一下如何定义二维数组

    和一维数组的结构是类似的

    int arrayaa[10][10];

    这样就定义了一个10行10列 由100个int型元素组成的二维数组的数组类型 arrayaa

    接下来我们看下面的例子:定义指针数组类型

    typedef int (*arrayaa)[10];

    定义了一个数组类型的指针

    然后我们使用一下这个指针

    int main(void)
    {
        int a2[10];
        typedef int (*arrayaa)[10];
        arrayaa aa;
        aa=&a2;
        a2[1] = 10;
        cout<<a2[1]<<endl;
    }

    逐一的看一下这个代码

    首先定义两个一个数组 a2,然后定义了一个和刚才数组同类型的数组类型指针 arrayaa ,用 arrayaa定义了一个变量 aa,然后将aa指向刚才定义个数组a2,并通过aa 给数组赋值打印等操作

    我们也可以这样做

    int main(void)
    {
        int a2[10];
        int (*arrayaa)[10];
        arrayaa=&a2;
        a2[1] = 10;
        cout<<a2[1]<<endl;
    }

    跟刚才的代码相比,这次的就是直接定义了一个(元素类型为int  元素个数为10的数组的)指针,(而上面的例子是先定义了指针类型),将指针指向前面的a2.

  • 相关阅读:
    HDU 1165 Eddy's research II (推公式)
    HDU 1394 Minimum Inversion Number (线段树&&暴力)
    HDU 2845 Beans (最大不连续子序列和)
    CodeForces 369A Valera and Plates( 水)
    HDU 1241 Oil Deposits(dfs)
    hdu 1016 Prime Ring Problem(dfs)
    hdu 5138 CET-6 test(水)
    ZOJ 3693 Happy Great BG(卡精度)
    HDU 1028 Ignatius and the Princess III(dp 母函数)
    CodeForces 432B Football Kit(水)
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/12686613.html
Copyright © 2020-2023  润新知