printf由右到左的运行顺序

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

p[0].a p[1].a p[2].a p[3].a 分别为1 3 5 7
输出7,3
very revealing
也说明结构指针自加会指向 结构数组的下一个变量

发布了42 篇原创文章 · 获赞 13 · 访问量 1930

猜你喜欢

转载自blog.csdn.net/KEVINzzh/article/details/103791412