指的是:官方没有定义这个写法,但是编译器可以正常编译的写法
比如说
a=3[*b++=c,b]=c+1;
等同于
*b=c; b++; a = b[3]=c+1;
完整代码
#include <stdio.h> int w[5]={1,2,3,4,5}; int a=3,*b=w,c=6,x=0; int main(){ printf("a:%d b:%d c:%d x:%d\r\n",a,*b,c,b[4]); for(int i =0 ;i<5;i++) printf("%d ",w[i]) ; printf("\r\n") ; //a=3[*b++=c,b]=c+1; *b=c; b++; a = b[3]=c+1; printf("a:%d b:%d c:%d x:%d\r\n",a,*b,c,b[4]); for(int i =0 ;i<5;i++) printf("%d ",w[i]) ; }
真让人摸不着头脑