Actually, "" isn't null. They're equal, but they aren't the same. [] and null are the same, but "" isn't the same, because it's a string literal, and string literals have a byte with '\0' one past their end so that they can be passeddirectly to C functions.
I didn't know that. How long has this been the case?
