问题描述
- 求下面C程序的运行结果
- #include
#define SIZE_NAME 30
#define SIZE_STU 4typedef 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
""(p++)->name);return 0;
}
解决方案
变量p是在哪里定义的呢?在VC 环境下运行下不就知道结果了么。
解决方案二:
1.源程序将会编译不过去,问题代码如下:
per_infor_t p=stu;
stu是一个数组名,p是一个变量,不能这么赋值。
2.建议将上面的代码修改为,这样就不会有问题。
per_infor_t *p=stu;
解决方案三:
写出下面程序的运行结果
指出下面程序的运行结果:
下面c程序的结果
解决方案四:
如果去掉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
""p->name);return 0;
}
改成这样,结果还是不正常