NULL
- макрос, определенный в <stddef.h>
для null pointer
; его можно определить как ((void*)0)
. NULL
- это имя первого символа в наборе символов ASCII
. В чем разница между ними?В чем разница между NUL и NULL?
ответ
NULL и NUL имеют одинаковую концепцию: оба они представляют собой отсутствие значения. Единственное различие - как вы сказали - NULL - это макрос, тогда как NUL - это имя, присвоенное первому символу ASCII. Единственный сценарий, вы, вероятно, столкнутся макрос называется NUL-то вроде этого:
#define NUL '\0'
Обратите внимание, что 0
, NULL
, '\0'
и L'\0'
несколько отличается:
sizeof(NULL)
таким же, как sizeof(void*)
, который обычно составляет 8
на 64-битных системах Intel.
sizeof(0)
- это то же самое, что и sizeof(int)
, что обычно является 4
на общих 64-битных системах Intel.
sizeof('\0')
также же, как и в sizeof(int)
C
, но так же, как sizeof(char)
в C++
, который имеет значение 1
по определению, и является, скорее всего, отличается от sizeof(int)
.
sizeof(L'\0')
- это то же, что и sizeof(wchar_t)
.
Удивительно, но в C
, вы можете иметь sizeof(L'\0') < sizeof('\0')
В C++ символ 'char' никогда не будет иметь тот же размер, что и' int', потому что 'char' всегда 1 байт, а 'int' всегда не менее 2 байтов. – Oli
Это имеет смысл, поскольку C++ должен иметь возможность различать символы 'char' и' int', но даже в системах, где 'sizeof (int) == 1',' int' и 'char' являются различными типами в' C', так почему это дополнительное ограничение? – chqrlie
Там нет такого термина, как NUL
в C стандарта. В C Standard там используются следующие термины
null character (\0)
NULL macro
null pointer
null pointer constant
null preprocessing directive
null statement
null wide character
Например
... Байт со всеми битами, установленными в 0, называется нулевой символ, должен существовать в основной набор символов исполнения; он используется для завершения символьной строки .
Или
3 Целого константа со значением 0, или такой выражения преобразованного к типу пустот *, называется пустого указателем константа 0,66) Если пустой указатель константа преобразуется в указатель тип, полученный указатель, нулевой указатель , гарантируется для сравнения неравнозначным с указателем на любой объект или функцию.
- 1. В чем разница между «(Object) null» и «null» в Java?
- 2. В чем разница между null и System.DBNull.Value?
- 3. В чем разница: = null и! == null?
- 4. В чем разница между «x is null» и «x == null»?
- 5. В чем разница между DEFAULT NULL и CHECKBOX NULL mysql?
- 6. В чем разница между символом == null и символом === null?
- 7. В чем разница между временем (NULL) и времени (и таймера)
- 8. В чем разница между «./» и «../»?
- 9. Разница между 'a == null' и 'null == a'
- 10. Разница между (null) и <null>
- 11. В чем разница между NULL и Empty в mysql
- 12. В чем разница между Null и Blank в django Model
- 13. Разница между NULL и null в PHP
- 14. В чем разница между [NSNull null] и nil?
- 15. В чем разница между var myvar; и var myvar = null ;?
- 16. В чем разница между ними не null и <> ''
- 17. В чем разница между назначением NULL и отменой?
- 18. Цель-C: В чем разница между NULL, nil и @ ""?
- 19. В чем разница между assert object! = Null и Assert.assertNotNull (объект)?
- 20. В чем разница между указателем void и указателем NULL?
- 21. В чем разница между типом параметра и типом NULL?
- 22. В чем разница между «и»?
- 23. В чем разница между `{}` и `[]`?
- 24. В чем разница между == и ===?
- 25. В чем разница между «+» и «\ +»?
- 26. В чем разница между + = и = +?
- 27. В чем разница между/* ... */и/** ... */
- 28. В чем разница между: и +:
- 29. В чем разница между $ {} и # {}
- 30. В чем разница между $ _. и $ _
В чем Ваш вопрос? – chqrlie
Перед тем, как ответить, обратитесь к [this] (http://meta.stackoverflow.com/q/293634/2173917). –
Почему это обозначено как дубликат? Возможно, этот вопрос был плохо написан, но это не дубликат. Другая нить не имеет в заголовке 'NUL'. – Bilow