если a является указателем, существует ли разница между тестированием if (a) и if (a! = NULL)? Какая из них лучше?Что лучше, если (a) или if (a! = NULL)
ответ
Нет никакой разницы. Используйте то, что делает ваш код более читаемым для себя и других. Если он получает в многословен, или если контекст ясно, не стесняйтесь пропустить явный NULL:
void * p = std::malloc(n);
if (!p) throw std::bad_alloc();
Как правило, вы должны использовать' new' в C++, но я не могу представить себе лучший пример. – tstenner
@tstenner: Вы случайно написали свой собственный ':: operator new'? Объекты и память - это два отдельных, не связанных понятия в C++. Не путайте одно с другим. –
Вы правы, но люди, которые пишут своих операторов, обычно не спрашивают (пока) о различии между if (a) и if (a! = Null). – tstenner
Это то же самое, но второй один делает ваши намерения более ясными.
Если вы используете C++ 11, вы должны использовать nullptr, так как это не позволит int x; if(x==nullptr){...}
Ваш компилятор будет выдавать один и тот же код для обоих, но if(a)
совершенно нормальный C идиома, и это что ожидают увидеть ваши коллеги-программисты.
Какие программисты-программисты? Существует большая группа программистов на C, которые любят обфускацию, но в C++ обычно это либо 'if (a! = NULL)', либо 'if (a! = 0)'. –
- 1. (a! = Null) или (null! = A)
- 2. выражение или выражение?: 'If a: do_something()' или '(a и do_somthing())', что лучше?
- 3. Следует ли использовать `if ($ a! = NULL)` или `if ($ a! == NULL)` для управления потоком программы?
- 4. Что предпочтительнее, a = [] или a = new Array()?
- 5. Если a является ложным, то делает, если (a) === if (false)?
- 6. Разница между 'a == null' и 'null == a'
- 7. если (а = нуль && InstanceOf A!) ... или если (а InstanceOf A)
- 8. Что означает @ $ a или $ a = ... в PHP?
- 9. PHP - Если внутри a if
- 10. Регулярное выражение для a ++ или a- или ++ a или --a
- 11. Почему алгоритм поиска A * лучше, чем A?
- 12. Что означает «a = a || []»?
- 13. Есть ли разница между if (a == 5) или if (5 == a) в C#?
- 14. Создать post_category для публикации a a a a a a a a a a a a a post_category
- 15. if (a) {} throws uncaughtReferenceError
- 16. Шорханд для a = (a == val1)? null: val1;
- 17. В чем разница между if (A), если (B) и если (A и B)?
- 18. Что лучше CNAME или A запись для www.?
- 19. break a if in a foreach() loope
- 20. В чем разница между if ($ a) и if ($ a == 1)?
- 21. Новичок PHP - три или в a if?
- 22. TypeError: a is null
- 23. Что такое вывод a, a ++, ++ a, когда a = 1;
- 24. Heroku вилка -a (что -a?)
- 25. Android - Java if (a ИЛИ b)?
- 26. Значение `A>: Null`?
- 27. if (a или b) и оператор c
- 28. Лучший способ написать: a = b, если a - None else a
- 29. Что означает while (! A), когда a - число?
- 30. Операции C# if. if not a или b
Это не имеет значения. –
@JamesMcNellis безразлично, чтение baaaaaaad. Мои глаза пропустили 'if a is pointer' –