这个问题来自这个问题:
c++ pass array to function question
但由于OP接受了答案,我想现在没人会读.
我在g上尝试了这个代码.看来,当传递给这个函数时,数组不会衰减到指针(该函数返回正确的结果):
#include <iostream> template <typename T> std::size_t size_of_array (T const & array) { return sizeof (array) / sizeof (*array); } int main () { int a [5]; std::cout << size_of_array (a) << '\n'; }
另一个用户(sharptooth)表示他在VC 10上有相同的行为,内联.
有人可以解释一下吗?谢谢.