c语言中*p=&a和p=&a有什么区别

 我来答
育知同创教育
2018-06-26 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
总得来说没区别,就是指针初始化的时间不同而已
int *p = &a;//这里p声明的时候直接初始化它的值为变量a的地址
int *p;//声明指针p,p的值不确定可能指向任何地址,
p = &a;//显示初始化使p指向a的地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平野律子
2014-04-30 · 超过71用户采纳过TA的回答
知道答主
回答量:121
采纳率:0%
帮助的人:179万
展开全部
举个例子吧: a是一个数组,它在内存中的初始地址比如说是0x11111111(简单假设),且a[0]的值是1,也就是说,内存0x11111111中存储的值是1。 于是,&a[0]=0x11111111,a[0]=1。 int *p; p=&a[0]; 指针p会有一个自己的内存地址,通常占用4个字节(比如初始地址是0x22222222)。p的值是&a[0],也就是说从0x22222222开始,后面4个字节中存储的值是0x11111111。 *p的值就等于p所指向的内存地址中存储的值,也就是a[0]。所以*p等于1。 如果*p=&a[0]的话,很容易出问题。比如说int *p之后,p的初始值可能是0xCCCCCCCC(Debug版本)或者0x00000000(Release版本)。这个时候,如果你写一句*p=&a[0]的话,将会把0xCCCCCCCC或者0x00000000内存之后4个字节的值变为0x11111111。 而0xCCCCCCCC和0x00000000内存区通常是不可写的,这样就会报错。
采纳哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
imkarayi9d4f
2017-12-14 · TA获得超过1552个赞
知道小有建树答主
回答量:1164
采纳率:85%
帮助的人:604万
展开全部
#include <stdio.h>  
int main()
{
int *p,a=0xAA; //声明 int指针变量 p 和 int变量a 

// *p=&a; //把指针p 指向的值 改变为 变量a的地址 ,是无效的
//            因为a的地址长度为4字节,而指针p指向的值为int,即两字节的。 
printf("程序运行前的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);

*p=a; //指针p指向的值 改变为 a的值 
printf("\n执行 *p=a; 指令后的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);

p=&a; //把指针p自己的值 改变为 变量a的地址,同时指针p指向变量a的值了
printf("\n执行 p=&a; 指令后的值\n");
printf("p的地址 = 0x%X \n指针p指向的值 = 0x%X \n指针p自己的值 = 0x%X\n",&p,*p,p);
printf("a的地址 = 0x%X \na的值 = 0x%X\n",&a,a);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爵爷1009
推荐于2018-02-27 · TA获得超过270个赞
知道答主
回答量:139
采纳率:83%
帮助的人:71.9万
展开全部
在定义指针的同时让指针指向某个地址 如int *p=&a;不能直接使用*p=&a; p=&a;代表的是让p指向变量a的地址
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cai_qi_an
2012-11-01
知道答主
回答量:10
采纳率:0%
帮助的人:1.5万
展开全部
有啊,*p是个指针,他储存的是一个变量的地址。你把A[0]里的数据赋给他,是储存在那个变量中,不是在存*p中。另一个P是个变量,A[0]中的数据时存在P中
例如:int *p;
p=&b;
*p=a[0];
b==a[0] 值是放在b中
另一个是放在P中 ,不同的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式