- 论坛徽章:
- 0
|
1.
#include <stdio.h>
int main()
{
struct student{
char * name;
int score;
};
struct student st={"Brian",97};
struct student *ptr=&st;
printf("ptr->name=%s\n",ptr->name);
printf("*ptr->name=%c\n",*ptr->name);
printf("*ptr->name++=%c\n",*ptr->name++);
printf("*ptr->name=%c\n",*ptr->name);
/*
printf("ptr->score=%d\n",ptr->score);
printf("ptr->score++=%d\n",ptr->score++);
printf("ptr->score=%d\n",ptr->score);
*/
return 0;
}
2.
#include <stdio.h>
int main()
{
struct student{
char name[89];
int score;
};
struct student st={"hello",79};
struct student *p;
p=&st;
printf("p->name=%s\n",p->name);
printf("*p->name=%c\n",*p->name);
printf("*p->name++=%c\n",*p->name++);
return 0;
}
两个程序,但是红色标注的那一行的代码在第一个程序中正常,但是在第二个代码中就显示错误:error: lvalue required as increment operand(错误:左值需要增量操作数),为什么这样子的呢,我看到这两个代码都一样呀,除了结构体赋值不同,但是为什么第二个会出现错误呢?
我是使用gcc4.2编译器。 |
|