p*
如是出现在算术表达式中,这个星号就是乘号,表示相乘,如果是出现在声明中(如变量定义),那就表明p是一种数据类型,p*表示要声明这种类型的指针变量。
*p
依然可以表示相乘的运算,也可表示提取p指针指向的位置保存的值。例如:
int a=9;
int *p=a;
printf("%d",*p);
这个printf()调用中的*p表示提取p指针指向的地址(即变量a的地址)保存的值(即变量a的值)
追问你这里有明显的语法错误,应改为:
int *p=&a;
或
int *p;
p=&a;
*p=a;
追答哦,是的,十分报歉!少了一个取址操作符。应改为:
int a=9;
int *p=&a;
printf("%d",*p);
追问你的意思是说*p和p*没区别了,对吧?
追答我的意思是说要看具体的程序,脱离具体的程序,就是上面分析的这样。