int i, j, k = 5, *p;
p = &k;
i = ++(*p);
j = (*p)++;
printf("%d %d %d", i, j, k) ;
下面程序段的运行结果是
6 6 7
解释一下吧
int i, j, k = 5, *p;
p = &k;
i = ++(*p);
j = (*p)++;
printf("%d %d %d", i, j, k) ;
下面程序段的运行结果是
6 6 7
解释一下吧
p是k的地址
i=++( * p),相当于i=++k,所以,i和k都变为6,因为++在前时,先加1,再运算
j=( * p)++相当于j=k++,因为++在后,所以先赋值,然后k再加1,因此j=k=6,然后k=7
因此最后i,j,k分别为6,6,7