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

来源:7-11 函数基础

mahsiaoko

2020-04-02

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

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

int sum_arr(int *arr, int n);

写回答

1回答

quickzhao

2020-04-02

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

0
9
嘤嘤鸣
回复
mahsiaoko
我理解二者没有区别是指,在int arr[]作为参数时退化成了int型指针,而int* arr就是个int型指针,这二者没区别。
2021-11-01
共9条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程