c语言typedef定义int型数组问题

这个题目描述的不好,我也不知道如何描述。。
在数据结构和算法分析这本书上有这样一段代码:

 typedef int disjset[munset+1];
//这里的定义数组可以直接这样吗?
//或者这里定义的是一个数据类型?
void initialize(disjset s)//因为disjset是数据类型所以这里可以定义一个新的数组?
{
    for(int i=numset;i>0;i--)
        s[i]=0;
}

我就是觉得这里的数组刷新了我之前对数组的映像,,以及,typedef好神奇好费解
希望懂的朋友可以给我讲一下里面的原理,谢谢啦!

typedef int disjset[munset+1];
就是指以后你看到代码中有disjset,你就脑补下,它就是int[]。

也就是看到void initialize(disjset s)
你就看作void initialize(int s[])

如果说int是系统为你定义的数据类型,那么typedef可以帮你定义你自己想定义的数据类型,上面的disjset就是一个你自己定义的一个可以定义数组的数组类型

使用typedef为现有类型创建同义字,定义易于记忆的类型名