Проверка наличия значения

Простые типы / Типы, допускающие null

// 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);
}