定义数组类型

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.

 

posted @ 2020-04-12 17:59  祁峰_1024  阅读(946)  评论(0编辑  收藏  举报