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个赞
如何理解这里p的功能,它是怎么实现分别给A、B数组赋值的?
数组名是数组首元素的地址,而p是一个指针变量,可以对它赋值一个具体变量的地址,所以p=A是合理的,通过操作p来修改数组A的数据。如*p=*p+1;将首元素+1,p++;指向第二个元素.....
p如果改成一个数组C[10],这里改成A=B和C=B,还能实现一样的效果么?
不能,int C[10];表明C也是数组名,而数组名是指针常量,值不可变,所以A=B和C=B是非法的。
- 1 回答
- 0 关注
- 1428 浏览
添加回答
举报
0/150
提交
取消