作业帮 > 综合 > 作业

C语言 *++(++p)->y的意思

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/29 14:03:14
C语言 *++(++p)->y的意思
struct{
\x05\x05int x;
\x05\x05char *y;
\x05}tab[2]={1,"ab",2,"cd"},*p=tab;
\x05
\x05printf("%c",*++(++p)->y);
输出“d”
(++p)不是相当于p=p+1;然后就变成*++p->y,怎么还能输出d呢?
希望说的仔细些,
C语言 *++(++p)->y的意思
首先你要明确tab有两个元素,分别是一个结构体.第一个是1和ab,第二个是2和cd执行步骤是这样的:++p:导致p指向第二个结构体p->y:取当前p指向的对象的成员y,即*(p->y) = c,注意是指向第一个元素c的++(p->y):指针向后跳一个,指向d*:取当前指针内的值d