当前位置: 代码迷 >> C语言 >> [求助]指针赋值的问题
  详细解决方案

[求助]指针赋值的问题

热度:131   发布时间:2007-03-22 18:52:46.0
[求助]指针赋值的问题

设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是
A) scanf("%d",pa) ;
B) scanf("%d",a) ;
C) scanf("%d",&pa) ;
D) scanf("%d",*pa) ;

这里答案是A
为什么下面几个都错的??


B是给是少了&,C是输入的是地址,而D输入的是数据把..我搞不懂了..

[此贴子已经被作者于2007-3-22 18:54:06编辑过]

搜索更多相关的解决方案: 赋值  指针  scanf  变量  

----------------解决方案--------------------------------------------------------

只有pa是一个地址,其它的都不是地址


----------------解决方案--------------------------------------------------------
哦..太感谢了..
----------------解决方案--------------------------------------------------------
2楼回答有点小问题哈,&pa明显是个地址,怎么会不是呢
只不过它是指针本身所在的地址而已
----------------解决方案--------------------------------------------------------
以下是引用lefttime在2007-3-22 20:44:55的发言:
2楼回答有点小问题哈,&pa明显是个地址,怎么会不是呢
只不过它是指针本身所在的地址而已

哦,抱歉,是我说错了.

顺便说一下C为何不对吧,弥补自己的过失

一个整型值不能赋值给一个指针,要进行一次类型转换
比如A=123456;(A为整型),要想将它赋值给一个指针P(int *型),需要这样,P=(int *)A;
----------------解决方案--------------------------------------------------------
A
----------------解决方案--------------------------------------------------------

回复:(w362034710)A
各位上面哪个定义有是不是有问题啊?&a是一个地址怎么赋给了指针Pa所指想的值呢?
----------------解决方案--------------------------------------------------------
这个地方不是赋给PA指向的值,而是赋给PA,前面的那么*是在定义它的类型,如果在其它地方出现*PA就是指PA的值.
----------------解决方案--------------------------------------------------------
  相关解决方案