*p=&a;scanf("%ld",p);为什么这样写不对呢
1.一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。
2.*p=a的意思:将a的值赋给p指针指向的地址的值;
3.p=&a的意思是:将a的地址赋给指针p;
4.区别:*p是一个值;p是一个地址;两者完全不相同。
5.*代表着p指向的地址的值,简单来说就是取值;&是取地址符号,取的是地址;p是指针,可以理解为所指向的值的地址,*p就是取p指针指向的地址的值,&a就是取a的地址。
来源:https://zhidao.baidu.com/question/88668867.html
如有帮助请采纳回答 谢谢
因为*p应该指向long型的变量,而&a是一个变量的地址,所以错了,如果将式子改为p=&a就对了,