我不明白如何检查数组中的某个位置是否被修改。下面是一个例子:
int array[5];
array[2] = 23;
array[4] = 23;
for (int i = 0; i < 5; ++i) {
if (array[i] == ????){
cout << "in array";
} else {
cout << "not in array";
}
}
所以我想知道如何获取它,以便 if
语句检查该项目是否已被修改。所以一旦我变成 2,它会说它在数组中,如果不是,它应该打印“不在数组中”。
这必须使用指针来完成。
最佳答案
这是未定义的行为,因为 array[0]
未初始化。那么当你在你的 if
中比较它时,会发生什么?
您可以将它们全部初始化为您认为“未修改”的值,并检查该值。例如:
int array[5] = {}; // initializes all elements to the default value for int, which is 0
然后,在您的 if
中:
if (array[i] != 0 ) {
如果因为需要完整范围的 int
值而不能这样做,那么您可以使用 std::optional
代替:
#include <iostream>
#include <optional>
int main() {
std::optional<int> array[5];
array[2] = 23;
array[4] = 0;
for (int i = 0; i < 5; ++i) {
if (array[i]) {
std::cout << "in array" << std::endl;
}
else { std::cout << "not in array" << std::endl; }
}
}
关于c++ - 如何使用指针检查数组中的某个位置是否被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58817367/