heatherill 2021-12-12 16:10 采纳率: 62.5%
浏览 9
已结题

C语言基础:为什么编译第一行输出2,第二行输出7,3

#include<stdio.h>
int main(void)
{
    struct {
  int a; int *b;
} s[4], *p;
int i, n = 1;    
for(i = 0; i < 4; i++){
      s[i].a = n;
      s[i].b = &s[i].a;
      n = n + 2;
}
p = &s[0];
printf("%d\n", ++*p->b);
p++;
printf("%d,%d\n", (++p)->a, (p++)->a);  
return 0;
}

输出

2
7,3

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月20日
    • 创建了问题 12月12日