为什么结果是48?谁能解释一下。

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:44:15
void main(void)
{
int b[2][3] = {{1,4,3},{2,5,6}};
int n,*p;
p = &b[0][2];
n = (*p)*(*(++p+2))*(*(p-2));
printf("%d\n",n);
}

p = &b[0][2]; *p=3 指向第一行第三列,即3

*(++p+2)=6 指针向后移3位,指向6 ( ++p是前置运算符,先加再将结果代入表达式参于运算)
*(p-2)=2 指针向前移2位,指向2
n=3*6*2=48