In theory, if this is the case (or the case in other comments about null pointer use and such), you would/could write it as:
bool cheap = cheapCheck();
bool expensive = cheap && expensiveCheck();
if (expensive) { ... }