Хе хоть классический си (Не путать с С++) относительно простой язык, но чем больше в нем разбираюсь, тем больше узнаю новых вещей...
Вот недавно обнаружил интересную конструкцию, примерно так:
Код:
bool a
{
.....
return !!b
}
Как видите функция возвращает двойное отрицание !!b, но зачем, ведь двойное отрицание по идеи исключает отрицание...
Оказалось всё давольно просто, вот смотрите:
- Если b=1, то будет "Истина";
- Если b=0, то будет "Ложь";
- А если b например не bool, а, допустим, int, то он станет булом, т.е в нашем случае код будет вести себя так:
a = 0 => false
a !=0 => true
Честно очень интересный для меня момент !