为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
翻过高山走不出你 2019-04-04 02:01:40
C语言指针问题:在定义指针时*p=a和p=a有区别吗?
查看完整描述

3 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

在定义指针时,指针变量名前的*号是必须的,不能少,区别于普通变量, 说明当前变量是指针变量,而不是普通的变量。

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

情形一:

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,然后再对它初始话,等价于情形一,只是分开写法而已。

查看完整回答
反对 回复 2019-04-05
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

当然有区别,区别很大,*p=a,就是给指针的表示的地址赋值,也就是赋值给指针指向的存储单元;而p=a,则表示给指针赋值,也就是指针的地址变成了a。两者一个指明了具体值大小,一个指明了具体位置。

查看完整回答
反对 回复 2019-04-05
?
跃然一笑

TA贡献1826条经验 获得超6个赞

*p=a
是p所指向地址的内容是a(比如一个数,或字符)
p=a
是p指向a(比如0x0001)这个地址


查看完整回答
反对 回复 2019-04-05
  • 3 回答
  • 0 关注
  • 2690 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信