结构体和指针的基本问题,有大佬可以帮忙解释一下么?
有大佬能帮忙解释一下printf里面那四个表达式的值是怎么计算出来的么?就是先算什么后算什么,我算的和运行结果不一样,不知道哪里错了#include<stdio.h>
#include<stdlib.h>
int main(void){
struct st{
int n;
struct st *next;
};
struct st a[3],*p;
a[0].n=5;
a[0].next=&a[1];
a[1].n=7;
a[1].next=&a[2];
a[2].n=9;
a[2].next='\0';
p=&a[0];
printf("p++->n=%d, p->n++=%d, ++(*p).n=%d, ++p->n=%d\n",p++->n,p->n++,++(*p).n,++p->n);
return 0;
}
运行结果:
p++->n=8, p->n++=7, ++(*p).n=7, ++p->n=6
--------------------------------
Process exited after 0.02178 seconds with return value 0
请按任意键继续. . .