c++中函数用数组a[]作为参数传递给指针*p时,在函数中用*p[i]调用数组元素属于非法的间接寻址???

2025-02-25 17:37:11
推荐回答(2个)
回答1:

c++中用数组作为参数的时候,传给指针*p的是数组a[]的首地址,也就是第一个元素的地址,所以这时的p并不是数组名,而是存有数组a[]的首地址的指针,所以调用*p[i]是不能访问数组a[]的元素的,因为这时*p[i]这个表达式的意思是调用一个名为p的指针数组的物理内存顺序上的第i+1个元素并取他所指向的对象。所以这时正确的调用方法只能是用*(p+i)。

回答2:

p[i] == *(p+i)