m0_62508191 2021-10-13 23:00 采纳率: 75%
浏览 12
已结题

为啥B和C不是6它们不也自+

struct st{ int n; struct st *next; }; static struct st a[3]={5,&a[1],6,&a[2],7,},*p=&a[0]; 若要使printf("%d\n",____)输出值为6,。
A p++->n相当于(&a[0]->n)
B p->n++相当于(&a[0]->n)
C (*p).n++相当于(a[0].n)
D ++p->n相当于++(p->n)
答案是d
为啥B和C不是6它们不也自+

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-10-13 23:11
    关注

    B p->n++ 等价于b = p->n; b++,所以相当于(&a[0]->n)++,所以B是错误
    C (*p).n++ ,*p = a[0],所以(*p).n++相当于(a[0].n)++,所以C是错误的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月18日
  • 已采纳回答 10月10日
  • 创建了问题 10月13日