*p=&a和*p=a的区别是什么?

 我来答
蓝雪儿老师
高能答主

2022-01-01 · 愿千里马,都找到自己的伯乐!
蓝雪儿老师
采纳数:266 获赞数:85177

向TA提问 私信TA
展开全部

它们的区别其实就是:

int *p=&a是同时定义*p并对赋值p(即a的地址赋给P),而p=&a,只是对P赋值,没有定义指针变量。

但要注意,只有在同时定义赋值时“*p=&a”这种写法才是对的。

首先来说一下*和&,为了便于理解你可以认为,这里*是取内容,&是取地址。

我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。

下面比较*p=a和p=&a。

显然它们是等价的。然后比较*p=&a和p=&a。则这两种都是对指针变量的赋值,赋值有两种形式。

①先定义后赋值。

 int a=3,*p;(定义指针变量*p)。

 p=&a;(对指针变量取地址)。

②定义变量的同时赋值。

int a=3,*p=&a。

也就是说在赋值时。int *p=&a。

相当于int *p。p=&a 。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式