(этот вопрос является точной копией Is compound if checking for null and then other condition in C always safe?, но около C++, а не C. Было указано, что вопрос должен быть более конкретным).Является составным, если проверять значение null, а затем другое условие в C++ всегда безопасно?
Я использую следующий тип if
состояние в течение длительного времени.
char* ptr = ...;
if (ptr != NULL && ptr[0] != '\0') // <=== is this always safe?
{ /* ... */ }
Он полагается на ptr != NULL
быть проверены перед ptr[0] !='\0'
.
Безопасен ли он по всем стандартам, составителям, архитектуре? Или есть вероятность, что ptr[0] != '\0'
будет проверен до ptr != NULL
?
Спасибо за повторную отправку. Это была правильная вещь (отдельные языки), но этот вопрос уже неоднократно задавался в прошлом. :) –
@LightnessRacesinOrbit да, я видел близкие предложения, и это правда, это тот же вопрос. Все нормально, если оно закрывается. Я не удалю его, но это еще один способ перефразировать одну и ту же проблему, поэтому она привлечет больше хитов google. – Dariusz
Да нет проблем. –