No what you're saying is actually false and it's common example of what in linguistics is known as hypercorrection, defined by Wikipedia as follows:
A speaker or writer who produces a hypercorrection generally believes that the form is correct through misunderstanding of these rules, often combined with a desire to appear formal or educated.
It's like people who try to correct others regarding the use of who vs. whom or I vs. me, but are themselves incorrect.
C++ for whatever reason attracts these kinds of people like crazy.
At any rate, your correction is false. The C and C++ standards say that any integer constant expression that evaluates to 0 is equal to the null pointer, not strictly the literal 0.
3 - 3
is an integer constant expression so it is equal to the null pointer.
This however, is not an integer constant expression:
int x = 3;
void* y = x - x;
So that is not guaranteed to be the null pointer.