有如下代码:
#define MIN__MY(a,b) ((a)<=(b)?(a):(b))
int main()
{
int arry[5] = {10,20,30,40,50};
int *p = &arry[0];
printf("%d & %d : MIN = %d, *p = %d\n", arry[1], 10, MIN__MY(*p++, 10), *p);
return 0;
}
输出为多少:20 & 10 : MIN = 20, *p = 10
程序运行到return时,其实 *p = 30
能理解为什么会是这样吗