可以,复合字面量数组就是省略了数组名,就是在创建的同时使用,因为匿名,所以创建后不好使用了。
如下代码:
#include
typedef struct stt
{
int id;
char name[10];
}STT;
int main()
{
STT *p=NULL;
p=(STT [3]){{1,"结构1"},{2,"结构2"},{3,"结构3"}};
printf("%d,%s\n%d,%s\n%d,%s\n",p[0].id,p[0].name,p[1].id,p[1].name,p[2].id,p[2].name);
return 0;
}
能,比如:
struct s
{
char c;
int i;
}arr[]={{'a',1},{'b',2}};