#include
#define SIZE_NAME 30
#define SIZE_STU 4
typedef struct _per_infor {
char name[SIZE_NAME];
int age;
char gender;
}per_infor_t;
int main() {
per_infor_t stu[SIZE_STU]={
{"raul",25,'F'},{"joe",29,'M'},{"philip",22,'M'},{"alan",28,'M'}
};
per_infor_t p=stu;
while(p<stu+SIZE_STU)
p++; /此句是我自己加上的,结果不明白是什么意思*/
printf("%s\n",(p++)->name);
return 0;
}
变量p是在哪里定义的呢?在VC 环境下运行下不就知道结果了么。
如果去掉p++,运行结果正常
vc6.0 下结果为:
?还一个箭头,打不上
#include
#define SIZE_NAME 30
#define SIZE_STU 4
typedef struct _per_infor {
char name[SIZE_NAME];
int age;
char gender;
}per_infor_t;
int main() {
per_infor_t stu[SIZE_STU]={
{"raul",25,'F'},{"joe",29,'M'},{"philip",22,'M'},{"alan",28,'M'}
};
per_infor_t *p=stu;
while(p<stu+SIZE_STU)
p++;
printf("%s\n",p->name);
return 0;
}
改成这样,结果还是不正常
1.源程序将会编译不过去,问题代码如下:
per_infor_t p=stu;
stu是一个数组名,p是一个变量,不能这么赋值。
2.建议将上面的代码修改为,这样就不会有问题。
per_infor_t *p=stu;