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
报告相同问题?