题目是以指向数组的指针为参数,调用函数func,主函数定义一维数组
int func(int a[])
调用函数 b=func(*p);
cannot convert parameter 1 from 'int' to 'int []'
用p可以运行,但我看有一题写的是*p,这两个有什么区别吗
主函数定义一维数组,对端int func(int a[])的形参是数组,这种情况调用应该写b=func(p),直接传数组过去;若对端形参是指针int func(int *a),则应该写b=func(&p),取数组地址传过去。
p指向的是一个数组的首地址,因为数组的地址是连续的,所以通过传递p,可以在func里面获取到数组
而*p
是数组首元素的值,传递的仅仅是一个值,不能获取数组数据
望采纳,谢谢
其实区别不是特别大,当你的形参为数组的时候,实参是可以用指针的,但是如果形参不是,那就不能用指针作为实参,指针和数组都是系统自动分配内存空间,两个极为相似,所以指针和数组一般连用。