// A search returns a pointer to the found item or nullptr.
int *findEven(int *items, size_t count) {
for (size_t i = 0; i < count; i++) {
if (items[i] % 2 == 0) return &items[i];
}
return nullptr;
}
int numbers[] = {1, 3, 4, 7};
int *n1 = findEven(numbers, 4);
bool exists1 = n1 != nullptr;
//exists1 is true
int odds[] = {1, 3, 5};
int *n2 = findEven(odds, 3);
bool exists2 = n2 != nullptr;
//exists2 is false
printf("exists1 is %s\n", exists1 ? "true" : "false");
printf("exists2 is %s\n", exists2 ? "true" : "false");
// A pointer in a condition means "is not nullptr".
if (n1) {
printf("n1 is %d\n", *n1);
}