Подскажите что означает такое сравнение *p && *p != ch;

подскажите *p && *p != ch; внутри цикла поиска символа в строке почему так сделано а не так *p != ch; или в приведенном выше примере ошибка?

Так выглядит:

const T *p;
for (p = str; *p && *p != ch; p++);
return p;

Ответы (1 шт):

Автор решения: FoxyHopper Dev

*p && *p != ch, используется в условии цикла для поиска символа в строке. она обеспечивает двойную проверку: на конец строки и на наличие искомого символа, прежде чем цикл завершит выполнение. Если условие было бы просто *p != ch, цикл завершался бы, как только был бы найден искомый символ, независимо от того, является ли этот символ концом строки или нет.

→ Ссылка