请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,您好!我想问一下,函数传递参数时,传递数组和传递指针有什么区别吗?

老师,进行传参时,如下面两种方式,有什么区别吗?是完全一样的吗?

int sum_arr(int arr[],int n);

int sum_arr(int *arr, int n);

正在回答 回答被采纳积分+3

1回答

quickzhao 2020-04-02 08:58:27

是的,int sum_arr(int arr[],int n); 这里的arr参数会退化成数组首元素的指针,要注意的是这里数组退化时会丢失边界,所以这里的int n来指定数组的个数,是很好的做法,否则可能导致下标访问越界。

0 回复 有任何疑惑可以回复我~
  • 提问者 mahsiaoko #1
    就是说使用int arr[]的时候传递的是数组首元素的地址,而使用int *arr时候传递的是整个数组的地址。这两个地址在数值上看应该是一样的 ,我这有理解对吧?
    回复 有任何疑惑可以回复我~ 2020-04-02 11:41:09
  • quickzhao 回复 提问者 mahsiaoko #2
    这里二者没有区别
    回复 有任何疑惑可以回复我~ 2020-04-02 11:53:59
  • 提问者 mahsiaoko 回复 quickzhao #3
    这里的二者没有区别是指?
    回复 有任何疑惑可以回复我~ 2020-04-02 12:13:10
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信