一个结构体数组的小问题

以下定义:
typedef struct{
int x;
int y;
}a[10];可以么?它的含义是什么呢?
如果可以,我在main函数里面如何声明这样一个变量?

这是C的写法,C++应该这么写
struct 结构体名{
int x;
int y;
};
使用
结构体名 a[10];

有typedef那么相当于定义了a这样一种类型,含10个元素,每个元素含x,y成员变量
没有typedef则变成了匿名结构体。
使用的话,把a当做类型名就行了:

typedef struct{
    int x;
    int y;
}a[10];

int main()
{
    a b;
    b[1].x = 5; //给b的第二个元素的x成员赋值
}