c语言中int*p=a与int*p=&a有什么区别???求大侠帮忙!!!

是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向a的地址????... 是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向a的地址???? 展开
 我来答
byzxybd
推荐于2018-05-10 · TA获得超过455个赞
知道小有建树答主
回答量:731
采纳率:100%
帮助的人:426万
展开全部
区别很大。第一个int *p = a;这是把a给一个指针,一般a是指针或数组,否则可能会造成很大错误。
int *p = &a;这是把a的地址给p,一般a可以是一个整型变量。
LifeReset
电脑发烧友

推荐于2016-11-10 · 识迷途其未远,觉今是而昨非
LifeReset
采纳数:902 获赞数:1485

向TA提问 私信TA
展开全部
int *p是定义一个指针 对应的该是地址

int*p=&a 则a是个指针或数组
int*p=&a 则a是个数据
更多追问追答
追问
是不是int*p=&a是把变量a的地址复制给指针p,所以p中存储的是a的地址,而int*p=a就是p指向变量a的地址????谢谢
追答
no。。
你还是概念不清啊
如果a只是个单纯的数据
int*p=a这种写法就是错的

必须是int*p=&a
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-09-19
展开全部
区别很大,第一个是把a赋给指针变量p,a变量必须存放的是指针值;第二条语句是把a变更本身的内存地址拿出来,赋值给指针变量p。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
步行者way
2012-09-19 · TA获得超过218个赞
知道小有建树答主
回答量:199
采纳率:100%
帮助的人:174万
展开全部
int*p=a,首先a是一个指针,然后定义一个int型指针p,指向a
int*p=&a ,首先a是一个数值(比如之前定义它 int a=100),那么在定一个指针p,指向a=100中a的内存地址
注意两个式子放在一块写是错误的。不可能定义a为指针,又为数值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-09-19
展开全部
因为p为指针变量,它初始化的值只能为地址,例如:
int b[10],a;
int *p1=b,*p2=&a; //这两种赋值都可以,注意,a,b都是地址,b是数组名,为数组的首地址,
若如下定义就是错误的:
int *p3=a;//a是简单变量,不是地址,而是值,类型不匹配,所以错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式