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

为什么用户自定义函数中的参数,数组的类型是指针呢

不是指针不行吗,为什么别的参数类型就不是指针,什么时候定义指针类型,什么时候不用啊,指针这里真的搞不明白。

正在回答

3 回答

我先定义一个数组  int a[10];

然后下面有两种调用,等价的。

int  fo(int a[]);

int  fo(int *a);

为什么是等价的?

数组名就是一个指向数组首地址的常量指针(人家就是指针啊)

0 回复 有任何疑惑可以回复我~

在这里,定义一个指针类型,输入实参的时候才能把数组名放进来,定义一个指针,就相当于这个地方的参数是一个地址,调用函数的时候需要输入一个数组时,要把数组中元素一个一个输入的效率太低,所以干脆用指针类型的形参把数组首个元素的地址作为形参输入,后续的程序调用过程会更加方便。


1 回复 有任何疑惑可以回复我~

指针和数组名都是代表地址

不过


int a[4];

int *p=a;


p所指向的地址就是a首元素的地址

类似

p+1与a[1]也是一样的




0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之起航篇
  • 参与学习       291033    人
  • 解答问题       760    个

C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华

进入课程

为什么用户自定义函数中的参数,数组的类型是指针呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信