scanf(“%lf”,p)和 scanf(“%lf”,*p)的区别 *p=&a和p=&a的区别 这四种写法对吗?是否有错误? 谢谢!

 我来答
纵横朝野
2011-08-02 · TA获得超过119个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:107万
展开全部
第二个和第三个错误。第一个和第四个正确。
第一个正确是因为p代表的是地址;
第二个错误是因为*p代表的是指针p指向的那个变量的数值,而不是这个变量的地址;
第三个错误,原理和第二个一样,*p在这个时候已经不能指针了,而只是一个数值,而a前面有加上了&,这是&a是一个地址;如果这个等式出现在诸如 int,float之类之后,就是正确的了;
第四个正确是因为p是一个指针,&a是一个地址,把一个地址赋给指针,这是符合逻辑的。

如果我的回答解决了你的实际问题,还请予以采纳,如果你还有疑问,欢迎追问。
追问
"如果这个等式出现在诸如 int,float之类之后,就是正确的了”                请问这是为什么?
追答
比如说你定义a为整型,int a;然后后面在定义int *P=&a; 这就构成了指针的初始化语句,所以是正确的呀,呵呵……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式