这是一道面试题:
int[]
和int*
有什么区别,它们都是函数的输入参数。
f(int a[] , int* b)
我的答案:
对于f()
,它们具有相同的功能。第一个是a[]
中第一个元素的起始位置。
第二个指向一个int
。
但是,如何在不传递其他参数的情况下将它们彼此区分开来呢?
最佳答案
作为函数参数,两者类型完全一样,int[]
被重写为int *
,无法区分。 StackOverflow 中的许多问题都涵盖了这个主题,c-faq甚至有一个 special section在指针和数组上(作为参数或不作为参数)。看一看。
关于c++ - int [] 和 int* 作为函数参数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8424716/