c++ - int [] 和 int* 作为函数参数的区别

标签 c++ c function pointers arguments

这是一道面试题:

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/

相关文章:

c++ - 编译器优化消除了错误共享的影响。如何?

c++ - extern "C"在 C 中是否有任何影响?

PHP - 函数名称必须是字符串

android - Android上如何录制OpenCV处理过的AR视频?

c++ - 如何在 C++ 中为任意数量的字符串连接编写可变参数函数

c - 我的井字游戏中的错误

php - 如何将类添加到 $_GET 上的侧边栏

javascript - Angular Firestore : Check if data exist and update a global variable based on that

C++:宏扩展解释

c - C 中的 strcmp 和 void 指针