#define在c中的行为

Jag*_*gan 3 c

#define int_p int*
int_p p1,p2,p3; // only p1 is a pointer !
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么会如此.

ken*_*ytm 14

#define只是一个文字替代.上面的代码相当于

int *p1, p2, p3;
Run Code Online (Sandbox Code Playgroud)

所以只有p1一个指针.你需要

typedef int* int_p;
Run Code Online (Sandbox Code Playgroud)

代替.