c语言的指针赋值问题

请问各位高手,定义了指针*p,想它指向一个元素,下面的
*p=&x
p=&x
*p=x
都是对的吗?用法有什么不同吗?

p就是一个指针,他指向一个地址,而&p就是p刚才所指向的具体地址,*p是p指向地址里面的东西。也就是值。*p=&a的意思是把a的地址给了*p,这样的话p就指向
(指向a的地址)的地址。对指针赋值必须是int
*p=null;或者int
*p;p=null。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-10-19
char *p;
p才是指针,*p是p指向地址的值。
如果x是变量,&x是取x的地址

*p=x;是往p指向的地址里面存入x的值

p是指针,但实际上p也是一个变量,只不过p里存的是个内存地址本回答被提问者采纳
第2个回答  2007-10-19
C语言哪来的引用!?
第一个是p指向x的地址。即p中存放的是X地址的地址。(也可以是正确的,但是很可能达不到你的预期目的在定义的时候这么用int x=2,*p=&x)
第二个是将x的地址赋值给p,这个正确。
第三个也是正确的,是让p存放X的地址(典型指针赋值操作)。
&是取址,在C++才可以被认为是引用!其实就是一种变相的指针!
第3个回答  2019-02-19
这样定义,只向系统要了指针的存放地点,却没有000000的存放地点,怎么确定放在哪呢,这样很危险的!
可以改成char
c[
]
=
"000000";
第4个回答  2007-10-19
肯定不同,*p=&x是定义一个指针,p=&x是引用,*p=x是赋值。
相似回答