C语言 指针中*p=&n; ,是什么意思呢,和*p,p=&n;,有什么区别和关系呢?在什么情况下可以用*p=&n呢 指针中,*p=n,与p=&n的作用一样吗?

作者&投稿:巧黄 (若有异议请与网页底部的电邮联系)
你要搞清两个概念:指针在定义和使用时的差别。
一个是定义的时候,int *p = &n,那么说明p是一个地址,它指向n这个变量。
一个是使用时 *p=&n,那么说明p是二级指针,即它指向地址的地址,那么*p仍然是地址,它指向n这个变量。

*p=&n这个只能是在定义指针p时使用,例如int *p=&n. 而p=&n,是在已经定义好指针p的前提下用,例如:int *p; p=&n; 如果给指针P赋值,是不可以用*p=&n的,因为此时*p代表它所指向的变量的值。

没有区别啊。
第一个 int n = 10; int *p = &n; 是在定义p指针时即初始化;
第二个 int n = 10; int *p = NULL; p = &n; 是先定义指针,再初始化;

这里跟二级指针无关啦。所谓二级指针应该就是指向指针的指针。
其实指针本质上只是一个内存地址值。

没有什么区别,都是将n的地址赋值给指针p

关于c语言指针int n=2,*p=&n,*q=p;的问题~

//定义指针的时候初始化p的值为n的地址int */*这之前是p的类型*/p = &n/*给p赋值*/;//给p赋值p = &n;/*同上*/

作用不同。
前者只是修改了p所指向的地址上的值,将此值改成了与n相等的值。
后者则是直接修改了p所指向的地址,让p直接指向了n的地址。