看到一道让人费解的问题 到底谁是指针变量
#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b; //宏定义直接做替换 等价于 int *a,b;
int_ptr c, d; //typedef就和定义变量一样 只是给一种类型起一个名字 int *c,*d;
宏定义做的事只有替换 它把INT_PTR代替成了int*
那拿下去第三行 就是int* a,b 那b自然就只是个int类型的变量(*是单目操作符和a结合了就没b事了)
typedef做的是把int*类型换了个名字叫int_ptr ,但它并不是简单的替换,它与定义正常数据类型时无异,所以第四行的c、d都是指针变量。