Zero to wartość liczbowa. Jest to określony o precyzyjnych właściwościach matematycznych. (Możesz na nim robić arytmetykę...)
NULL oznacza brak jakiejkolwiek wartości. Nie możesz z nim nic zrobić poza testowaniem tego.
Puste jest źle zdefiniowane. Dla różnych ludzi oznacza różne rzeczy w różnych kontekstach. Na przykład:
- Ktoś może mieć na myśli ciąg znaków o zerowej długości, tj. taki, który nie zawiera żadnych znaków (
''
). - Ktoś może mieć na myśli ciąg znaków o długości niezerowej, składający się wyłącznie ze znaków niedrukowalnych (SPACJA, TAB itp.). A może składa się tylko z jednego znaku SPACE.
- W niektórych kontekstach (gdzie znak i łańcuch są różnymi typami), ktoś może oznaczać niedrukowalną wartość znaku.
- Ktoś może nawet mieć na myśli „wszystko, co nie pojawia się podczas drukowania lub wyświetlania”.
Chodzi o to, że „pusty” nie ma jednego, dobrze zdefiniowanego znaczenia. Przynajmniej nie w (ojczystej) angielskiej terminologii informatycznej. Prawdopodobnie najlepiej tego unikać... jeśli chcesz, aby inni specjaliści IT zrozumieli, co masz na myśli . (A jeśli ktoś inny używa tego terminu i nie jest to oczywiste z kontekstu, poproś go, aby powiedział dokładnie, co ma na myśli!)
Nie możemy powiedzieć nic ogólnie znaczącego o tym, jak reprezentowane są ZERO / NULL / BLANK, ile zajmują pamięci ani nic w tym rodzaju. Wszystko, co możemy powiedzieć, to to, że są one reprezentowane w różny sposób .... i że rzeczywista reprezentacja jest zależna od implementacji i kontekstu .