R2-5 对于以下结构定义,(*p)->str++中的++加在()。
struct { int len; char *str; } *p;
A.指针str上
B.指针p上
C.str指向的内容上
D.语法错误
解析:
p是一个结构体指针,结构体指针访问成员用"->",结构体变量用"."
若为p->str++,的确时加在指针str上;而本题为(*p)->str,则会发生语法错误
Code:验证 p->str++的情况
#include<stdio.h>
typedef struct {
int len;
char s[10] = "abcdefg";
char *str = &s[0];
} STR;
int main( )
{
STR a;
STR *p = &a;
printf("%s\n",++p->str);
return 0;
}
运行结果:
显然,
p-> str++ ,++加在指针str上