有人可以向我解释一下为什么以下代码的输出显示数组不等于?
int main()
{
int iar1[] = {1,2,3,4,5};
int iar2[] = {1,2,3,4,5};
if (iar1 == iar2)
cout << "Arrays are equal.";
else
cout << "Arrays are not equal.";
return 0;
}
最佳答案
if (iar1 == iar2)
这里 iar1
和 iar2
是 decaying 指向各自数组的第一个元素的指针。由于它们是两个不同的数组,因此指针值当然是不同的,并且您的比较测试也不相等。
要进行逐元素比较,您必须编写一个循环;或使用 std::array
而是
std::array<int, 5> iar1 {1,2,3,4,5};
std::array<int, 5> iar2 {1,2,3,4,5};
if( iar1 == iar2 ) {
// arrays contents are the same
} else {
// not the same
}
关于c++ - 在 C++ 中比较数组是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866413/