可以这样理解。
int
*p;
p就是一个变量,存放一个值。这个值有点特殊,它是个存储空间的地址。这是,p成为指针变量。*p如果出现在表达式中,表示一个值,这个值为p中存放的地址处的内容。
int
p;的情况下,p也是一个变量,存放一个整型值。&p也是一个特殊值,这个值为p这个变量在存储空间中的地址。
如果你要用宏定义的话
那就这样写
#define
p
3
#define
f(x)
p*(x)*(x)
main()
{
printf("%d\n",f(3+5));
}
宏定义只是一个简单的带入。没有函数的功能
int
*p;
//
这里是定义int类型的指针
&p;
//
取变量p的地址
("%d\n",p)
//
打印输出p的值
不知道你具体想了解什么