指针p指向数组a和* p=& a的区别?


选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部
P=&a表示,P这个变量(内存地址)里面存的是a这个变量(即,内存地址)的地址。P在声明的时候,已经有自己的地址了,这样的用法就是把P里面的值改了,是安全的。*P=a表示,P这个变量(即,内存地址)里面存的那个地址,其所存储的值为a这个变量的值。如果P里面的值(注意,是P里面的值,不是*P,也不是&P)是个非法的地址,比如说,你没有给初始值。那么,*P=a会导致segementation fault(linux下,如果windows下没出问题,那就是windows自己的底层库给P预设了安全的数值,但是,纯从标准上看,是不应该未初始化就这么写的。)另外:P=&a;*P=b;就会导致,a == b 为真。想想这个a是怎么变成与b相等的。这个例子应该足够理解其中区别了。
已赞过已踩过你对这个回答的评价是?评论
收起
展开全部
p是指针变量,它存储的是指针p=&a
是把a的地址给p而*p则和a是一个类型,就是说*p相当于一个存储数据的变量,*p=a就是把a的值赋给*p例如把你的两个语句P=&a;*p=a
那么 a的地址先赋给了p, 之后p就是a的地址,*p实际就是a了,*p=a就是把a的值存入p地址所标示的内存单元中,实际上如果把这两句放一起,后面那句*p=a就是没用的了。
展开全部p是指针,它的数值是指向一个内存的地址,&a的意思是取变量a的内存地址,所以p=&a的意思就是把变量a的内存地址赋值给指针p*p的意思是取出p指向的内存地址的内容,所以*p=a的意思是把变量a的数据复制给指针p指向的内存空间.
展开全部P=&a
//把变量a的地址给指针p **p=a
//变量a的值给指针p指向的地址int *p,a=1;p=&a
//p就指向了存储a值的地址//cout <<"p指向的地址:"<<p<<
"
a的地址:"<<&a<<endl;
//输出结果是a的地址了*p =a;
//p指向的地址的值为a的值;cout<<"p指向的地址的值:" <<*p<< "
a的值:"<<a;展开全部如果不区分大小写的话。根据你的赋值。p是一个指针变量。a是一个变量。p=&a, 把变量a的地址赋值给指针变量p。*p=a
变量a的值赋值给a指向的内存单位。
收起
更多回答(7)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}

我要回帖

更多关于 指针p指向数组a 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信