我试图比较两个int数组,逐个元素,以检查是否相等。我似乎无法使它正常工作。基本指针资源也欢迎。谢谢!
int *ints;
ints = new int[10];
bool arrayEqual(const Object& obj)
{
bool eql = true;
for(int i=0; i<10; ++i)
{
if(*ints[i] != obj.ints[i])
eql = false;
}
return eql;
}
最佳答案
当您执行if(*ints[i] != obj.ints[i])
时,要比较的是ints[i]
指向的地址与obj.ints[i]
的内容,而不是ints[i]
本身的内容。这是因为数组的名称已经是指向数组第一个元素的指针,并且在添加下标时,将在该数组中第一个元素之后寻找第i个位置。这就是为什么您不需要*
的原因。
正确的是:
int *ints;
ints = new int[10];
bool arrayEqual(const Object& obj)
{
bool eql = true;
for(int i=0; i<10; ++i)
{
if(ints[i] != obj.ints[i])
eql = false;
}
return eql;
}
希望我能帮上忙!
关于c++ - 垒球C++问题:如何比较两个数组是否相等?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1516574/