* p=& a, p=& a的区别?

 我来答
惑_Eva
2023-06-25 · TA获得超过365个赞
知道答主
回答量:20
采纳率:100%
帮助的人:2万
展开全部

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

我不讨论它们的区别,因为*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 


它们的区别其实就是

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

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

其他情况下不要用*p=&a,这种形式,因为根本就不对,如下图。我之前一直的疑问是为什么赋值时*p=&a就不算错了?后来老师给的解释是这种形式只有在上面那种情况下成立,其他的情况确实都是错的。

杭州彩谱科技有限公司
2020-07-03 广告
测色仪L、a、b、c、h的意思,L代表明暗度(黑白),a代表红绿色,b代表黄蓝色,c表示彩度(色彩饱和的程度或纯粹度),h表示色调角。测色仪,广泛应用于塑胶、印刷、油漆油墨、纺织、印染服装等行业的颜色管理领域,根据CIE色空间的Lab,Lc... 点击进入详情页
本回答由杭州彩谱科技有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式