【发布时间】:2014-10-23 14:38:44
【问题描述】:
这是C++ Primer 5th edition中的一个练习,内容如下:
练习 6.24:解释下列函数的行为。如果代码中存在问题,请解释它们是什么以及如何解决它们。
void print(const int ia[10])
{
for (size_t i = 0; i != 10; ++i)
cout << ia[i] << endl;
}
我在代码中找不到任何问题。这个练习有什么意义?
【问题讨论】:
-
这不是一个非常有用的功能。它只能打印恰好包含 10 个元素的数组。如果您提供的数组少于 10 个元素,它将中断。
-
@NeilKirk:如果你提供一个超过 10 个元素的数组呢?
-
我已经知道神奇的数字了。还有什么?
-
参数只是一个指针,相当于
const int*。您可以将指针传递给较小的数组、单个对象或空指针。如果您执行任何这些操作,该功能将出错。 -
据我了解,如果使用
ia调用具有超过 10 个元素,则只会打印前 10 个。
标签: c++