c语言中p*是什么意思,他和*p的区别是什么?

如题所述

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*没区别了,对吧?

追答

我的意思是说要看具体的程序,脱离具体的程序,就是上面分析的这样。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-10-22
*的含义并非这么简单,如果只是想简单了解,*可以作为四则运算中的乘,而在指针中,以*p为例,*则代表一种特定逆运算符(通俗讲法就是指针运算符),表示对存放地址的变量p进行特定的逆运算,使*p最后显示的值为p所指向某个变量的地址所存放的值。
例如:int i = 6;

int *p;

p = &i;

那么,*p == i;本回答被网友采纳
第2个回答  2012-05-07
p*就是p乘以撒
*p那就是指针撒
第3个回答  2012-05-07
同楼上所说的,但是有中情况是 p是一种类型的时候
p *就是一种指针类型
相似回答