Пустая строка в условии
Хочу вывести слово если строка пустая. Вот так работает:
#include <iostream>
int main()
{
char q[]{'\0'};
if(!q[0])
std::cout << "hello" << std::endl;
return 0;
}
А вот так нет:
#include <iostream>
int main()
{
char q[]{'\0'};
if(!q)
std::cout << "hello" << std::endl;
return 0;
}
Почему?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Потому что q усть массив, по сути - адрес первого элемента. А поскольку первый элемент - каким бы он ни был - всегда существует и имеет адрес, то q - всегда имеет ненулевое значение. А !q, соответственно, нулевое, т.е. "ложь"...