其中一个面试问题要求我“编写一个 C 函数的原型,该函数需要一个恰好包含 16 个整数的数组”,我想知道它可能是什么?也许像这样的函数声明:
void foo(int a[], int len);
或者是其他东西?
如果语言是 C++ 呢?
原文由 sriks 发布,翻译遵循 CC BY-SA 4.0 许可协议
其中一个面试问题要求我“编写一个 C 函数的原型,该函数需要一个恰好包含 16 个整数的数组”,我想知道它可能是什么?也许像这样的函数声明:
void foo(int a[], int len);
或者是其他东西?
如果语言是 C++ 呢?
原文由 sriks 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
在 C 中,这需要一个指向 16 个整数数组的指针:
它会被调用:
在 C++ 中,您也可以使用对数组的引用,如 Nawaz 的回答所示。 (问题在标题中要求 C,最初只在标签中提到 C++。)
任何使用以下变体的版本:
最终等同于:
实际上,它将接受任何大小的数组。
问题被问到 -
special_case()
真的阻止了不同大小的数组被传递。答案是“是”。编译器(MacOS X 10.6.6 上的 GCC 4.5.2,碰巧)抱怨(警告):
更改为 GCC 4.2.1 - 由 Apple 提供 - 警告是:
4.5.2中的警告更好,但实质是一样的。