为了账号安全,请及时绑定邮箱和手机立即绑定

以下语句把指针变量换成数组是否功能一样?

以下语句把指针变量换成数组是否功能一样?

C C# C++
JustV 2016-12-30 09:44:52
int A[10];int B[10];int *p;int A[10];int B[10];int *p;void giveV(){   p = A;    //如何理解这里p的功能,它是怎么实现分别给A、B数组赋值的?   giveValue( );     p = B;    //p如果改成一个数组C[10],这里改成A=B和C=B,还能实现一样的效果么?   giveValue( );}void giveValue( ){    //通过一串语句对数组进行赋值,比如p[0]=0...   }}
查看完整描述

1 回答

?
望远

TA贡献1017条经验 获得超1032个赞

  1. 如何理解这里p的功能,它是怎么实现分别给A、B数组赋值的?

    数组名是数组首元素的地址,而p是一个指针变量,可以对它赋值一个具体变量的地址,所以p=A是合理的,通过操作p来修改数组A的数据。如*p=*p+1;将首元素+1,p++;指向第二个元素.....

  2. p如果改成一个数组C[10],这里改成A=B和C=B,还能实现一样的效果么?

    不能,int C[10];表明C也是数组名,而数组名是指针常量,值不可变,所以A=B和C=B是非法的。



查看完整回答
反对 回复 2016-12-30
  • 1 回答
  • 0 关注
  • 1399 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信