In C, algorithms that rely on pointers such as bsearch() and lfind() return a null pointer to indicate that the sought after element wasn’t found. Unlike a pointer, a reference must always be bound to a valid object. Therefore, a reference can never be null. I’ve often seen the following dreadful hack as an attempt to fabricate a null reference:
int& locate(int * pi, int size, int value) { if (find_int(pi, size, value) != NULL) //