C语言指针问题:在定义指针时*p=a和p=a有区别吗?
展开全部
在定义指针时,指针变量名前的*号是必须的,不能少,区别于普通变量, 说明当前变量是指针变量,而不是普通的变量。
对于你的问题,我举例说明:
情形一:
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,然后再对它初始话,等价于情形一,只是分开写法而已。
对于你的问题,我举例说明:
情形一:
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,然后再对它初始话,等价于情形一,只是分开写法而已。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
*p=a
是p所指向地址的内容是a(比如一个数,或字符)
p=a
是p指向a(比如0x0001)这个地址
囧了...问题看漏了..上面那位兄弟是对的...=_=
是p所指向地址的内容是a(比如一个数,或字符)
p=a
是p指向a(比如0x0001)这个地址
囧了...问题看漏了..上面那位兄弟是对的...=_=
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得mcs51园地回答得有道理,比如*(a+1)=*(p+1)也论证了所说的a=p,而*p,你可以随意赋值进去,比如*p=1,*p=3等等,看一些程序还是有区别的,真理还是属于少数人啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询