这么说可能不准确。下面举一例:
typedef struct ManyNums{
int num;
} AList[10];
之前从来没有处理过像AList[10]这样子带长度的typedef定义。该如何使用、调用之呢?
在这个例子中,AList是ManyNums的别名,长度为10。在main函数中使用的时候,并不需要再次写上长度[10]。可以这么做:
AList alist;
这样子就定义了一个长度为10的AList类型变量alist。变量声明的时候没有用到数字10,但是已经隐含了长度为10的条件!
以下是完整使用ManyNums类型的一个小实例:
#include <stdio.h>
typedef struct ManyNums{
int num;
} AList[10];
int main()
{
int i = 0, k = 0;
AList alist;
for(i = 0; i < 10; i++)
{
scanf("%d", &k);
alist[i].num = k;
}
for(i = 0; i < 10; i++)
{
printf("%d ", alist[i].num);
}
return 0;
}
这个程序实现了依次输入AList类型变量中的10个元素num,并依次输出。
说明:
- 这个问题的重点是,AList后面跟着的10该如何理解。
- 如果不能妥当在main函数中使用(例如AList[5]之类的操作),可能会出现[Error] expected primary-expression before '[' token的报错。