C语言指针问题:在定义指针时*p=a和p=a有区别吗?

 我来答
修者世界
2015-10-30 · TA获得超过5850个赞
知道大有可为答主
回答量:5984
采纳率:61%
帮助的人:788万
展开全部
当然有区别,区别很大,*p=a,就是给指针的表示的地址赋值,也就是赋值给指针指向的存储单元;而p=a,则表示给指针赋值,也就是指针的地址变成了a。两者一个指明了具体值大小,一个指明了具体位置。
raef_beyond
2010-07-03 · TA获得超过1651个赞
知道小有建树答主
回答量:382
采纳率:50%
帮助的人:231万
展开全部
在定义指针时,指针变量名前的*号是必须的,不能少,区别于普通变量, 说明当前变量是指针变量,而不是普通的变量。

对于你的问题,我举例说明:

情形一:

int a[5]={1,2,3,4,5};

int *p=a;//这是在定义指针变量p的同时就直接给它初始化,即把数组a的首地址赋给它。

情形二:

int a[5]={1,2,3,4,5};

int *p;//声明指针变量p
p = a;
这里的话是先声明指针p,然后再对它初始话,等价于情形一,只是分开写法而已。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_rylee
2010-07-04 · 超过22用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:53.8万
展开全部
*p=a
是p所指向地址的内容是a(比如一个数,或字符)
p=a
是p指向a(比如0x0001)这个地址

囧了...问题看漏了..上面那位兄弟是对的...=_=
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lo广jxoo
2018-05-21
知道答主
回答量:1
采纳率:0%
帮助的人:858
展开全部
我觉得mcs51园地回答得有道理,比如*(a+1)=*(p+1)也论证了所说的a=p,而*p,你可以随意赋值进去,比如*p=1,*p=3等等,看一些程序还是有区别的,真理还是属于少数人啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式