今天在利用typedef定义结构体时,顺带定义了结构体的别名,指向结构体的指针变量别名以及结构体数组的别名,但是在程序的执行过程中法相智能是一段一段的执行,全部执行时编译器报错(用的是VS2008),特向高手请教。
程序代码如下:
#include
#define len 10
#define N 5
#define null 0
typedef struct student
{
int age;
float total;
} person_alias,*pointer_struct_alias,Stu_alias[5];
void main()
{
/* 1首先是person
person_alias p1; //这里person 等价于struct student
p1.age=20;p1.total=65.36;
printf("p1.age=%d,p1.total=%f\n",p1.age,p1.total);
*/
/* 2然后是定义结构体指针的别名 */
person_alias p2;
pointer_struct_alias pointer1; //定义一个指向结构体变量p2 的 指针变量pointer1
pointer1=&p2;
pointer1->age=29;pointer1->total=55.32;
printf("p2->age=%d,p2->total=%f\n",pointer1->age,(*pointer1).total);
/*(3) 然后是结构数组的别名*/
Stu_alias Stu;
int i=0;
pointer_struct_alias pointer2;
pointer2=Stu;
for(;i
{
pointer2->age=2*i+2;
pointer2->total=1.1*i+60;
}
printf("结构体数组的数据为\n");
for(pointer2=Stu;pointer2
{
printf("Age=%d-->total=%f\n",pointer2->age,pointer2->total);
}
system("pause");
}
经过测试,分别对 1,2,3进行编译时都是能够正确运行的,但是1,2,3段一起编译时就报错,因没有分数,望帮忙。