下面两段代码的区别仅在于输出那里
#include<iostream>
using namespace std;
struct st{
int n;
struct st *next;
};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
int main(){
p=&a[0];
printf("%d,",p++->n);
printf("%d,",p->n++);
printf("%d,",(*p).n++);
printf("%d,",++p->n);
return 0;
}
上面的结果位 5,7,8,10
而下面这个结果为8,7,6,7
#include<iostream>
using namespace std;
struct st{
int n;
struct st *next;
};
static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;
int main(){
p=&a[0];
printf("%d,%d,%d,%d",p++->n,p->n++,(*p).n++,++p->n);
printf("\n");
return 0;
}
实在不明白为什么会出现这样的不同 5,7,8,10那个好理解
8,7,6,7这个是为什么呢
两者的区别仅在于一个合在一起输出的,而另一个是分别输出的,但结果不同,求着大佬这是为什么
是在同样环境下的编译器