两个输出的结果是5和6
解析:
y=(*--p)++;是个复合语句,根据优先级可以拆解为--p; (*p)++;
因为p指向的是数组a的第1个空间,所以--p后执指向了第0个空间,即a[0],在进行a[0]++这样,由于++在变量后面,所以其值是在这条语句是保持不变,语句运算完后在进行+1,所以y=a[0]=5,语句结束后a[0]=a[0]+1=6;
创建一个int形式的数组a[]里面有元素{5,8,7,6,2,7,3}
创建一个int变量y和一个int的指针变量*p等于a[1]的地址&a[1]
把a[1]的地址增加一个偏移量-1(因为数组的地址是挨着的,所以这也就表示了a[0]的地址)然后再取此地址的值(a[0]的值)之后再加一(其实此语句就相当于a[0]+1),再把此值赋给y
分别打印出a[0]和y
(*--p)++指针先减1即向左移一位,p=a[0],a[0]++即结果为6
6