int *p=a和int *p=&a有什么区别?

我在好多问题里都看到了,都没说明白... 我在好多问题里都看到了,都没说明白 展开
 我来答
h374225130
推荐于2018-02-22 · TA获得超过264个赞
知道答主
回答量:65
采纳率:100%
帮助的人:15.2万
展开全部
int *p=&a 其实是两个语句 等价于 int *p; p=&a;
如果a是int型,int *p=a是错误的,正确的应该是 int *p; p=&a;
在定义的时候不能给p直接赋值整型,只能赋值int型地址 即 &a;
如果要给p指针指向的地址赋值,就可以*p=a;但不能在定义*p的时候直接赋整型。
天蝎kaishui
2019-12-23
知道答主
回答量:48
采纳率:66%
帮助的人:2.3万
展开全部

1)int *p=a;

举例:int *p=100;

p是一个指针变量,将一个常量赋给一个指针变量,p等于地址0x00000064,即p是指向某个数的指针变量,该数的地址是0x00000064,一般实际中没这么用;跑下程序:

2)int *p=&a;

举例:int a=100; int *p=&a;

a是一个变量,p就是指向a的指针变量,即p等于a的地址;跑下程序:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
捧一米阳光
2012-10-10
知道答主
回答量:50
采纳率:0%
帮助的人:18.1万
展开全部
从基本定义来啊,int *p之后p为一个地址,*代表指向这个地址,int *p=&a等价于int *p,p=&a.这样p和&a都是地址,可以=。对于int *p=a,如果a为数组名,则也是个地址,与前面的就同了,如果a只是个一般变量,p是地址,*指向它,*p合起来就是一个数,如a是int型,就可看成两个数赋值,如果a不是int型,出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26ad406
2012-10-10 · TA获得超过1611个赞
知道大有可为答主
回答量:1506
采纳率:100%
帮助的人:1081万
展开全部
int *p=a p指针的值(p代表的地址)是a
int *p=&a 表示p指针指向的是a的地址,p的值是a的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友605569d
2012-10-10 · 超过12用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:43.8万
展开全部
int *p就是申请一个int型的指针p,指针是用来保存地址的,所以&a就是取得a的地址赋给p。但是int*p=a的话,a必须是个地址,可以是指针,也可以使数组名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(15)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式