Итак, чему же все-таки соответствует истина?

Итак, чему же все-таки соответствует истина?

     Мы можем использовать 1 и 0 в качестве проверочных значений оператора if. Спрашивается, можем ли мы использовать другие числа. Если да, то что при этом происходит? Давайте проведем эксперимент.

/* if - тест */

main( )

{

if (200)

    printf("200 - это истина. ");

if(-33)

    printf(" -33 - это истина ");

}

Pезультаты выглядят так

200 - это истина

-33- это истина

     Очевидно, в языке Си числа 200 и -33 тоже рассматриваются как "истина". И действительно, все ненулевые величины принимаются в качестве "истины" и только 0 - как "ложь". В языке Си понятие истины оказывается чрезвычайно растяжимым.

     Многие программисты обычно пользуются этим определением истинности. Например, строку

if(goats !=0)

можно заменить такой

if(goats)

поскольку выражение (goats != 0) и выражение (goats) оба примут значение 0, или "ложь", только в том случае, если значение переменной goats равно 0. Мы думаем, что смысл второй формы записи менее очевиден, чем первой. Однако в результате компиляции она оказывается более эффективной, так как при реализации про граммы требует меньшего числа машинных операций.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

опыты: Таки yellow submarine!..

Из книги Журнал "Компьютерра" №758 автора Журнал «Компьютерра»

опыты: Таки yellow submarine!.. Автор: Юрий Смирнов smir@kvidex.ruКогда я учился в четвертом классе, отец сделал мне из фанеры резиномоторную подводную лодку по чертежам из журнала "Моделист-конструктор". Лодка забавно ныряла на 50-100 см, проходила под водой метров десять, а потом


8.5. Если беда все-таки случилась

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

8.5. Если беда все-таки случилась Как ни предохраняйся, от случайных сбоев ни один компьютер не застрахован. Время от времени в системе могут возникать критические ошибки, приводящие к проблемам в работе Windows или невозможности ее запуска. Причинами таких ошибок могут быть


3.1. Итак, приступим.

Из книги Пишем драйвер Windows на ассемблере автора Компьютеры Автор неизвестен -

3.1. Итак, приступим. Вы можете проследить за последовательностью и содержанием действий, открыв файл main.asm для просмотра.Начнём, пожалуй, так:.586p ; Процессор Intel Pentium, разрешены инструкции защищённого режима.model flat, stdcall ; Здесь всё ясно. Плоская модель адресации и тип вызовов


Википедия: Платон или истина?

Из книги Журнал PC Magazine/RE №10/2009 автора Журнал «PC Magazine»

Википедия: Платон или истина? Александр Рябцев Все, кто пользуется Интернетом, знают, что такое «Википедия», и хотя бы раз к ней обращались. Но сказать, что «Википедия» – это энциклопедия, даже если добавить «онлайновая», мало: необходимо подчеркнуть ее существенное


Обсуждение: что все-таки не сделано

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Обсуждение: что все-таки не сделано Основные идеи универсализации уже представлены, но как вы могли заметить, на два важных вопроса не даны ответы.Первое: в наших усилиях гарантирования безопасности типов мы заняли чересчур консервативную позицию. Конечно, некорректно


Итак, ценность – это…?

Из книги Добавьте в корзину. Ключевые принципы повышения конверсии веб-сайтов автора Айзенберг Джеффри

Итак, ценность – это…? По словам Моханбира Сохни, ценность всего, что можно встретить в Интернете, существует только в уме пользователя. Он решает, что какая-либо ценность ему нужна, и заглядывает на ваш сайт в надежде ее найти.Ну а теперь задайте себе вопрос: способна ли


Для тех, кто все-таки боится поднимать цены

Из книги Удвоение продаж в интернет-магазине автора Парабеллум Андрей Алексеевич

Для тех, кто все-таки боится поднимать цены Рассмотрим простой пример. Если ваш продукт стоит 4200 рублей, от того, что вы повысите цену до 4290 рублей, количество продаж, вероятнее всего, не изменится. Зато вы получите дополнительные 90 рублей чистой прибыли с каждой


Задание состава публикации Итак, мы выбрали форматы, в которых будем

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Задание состава публикации Итак, мы выбрали форматы, в которых будем распространять наш фильм и изображение-замену. Теперь можно приступать к собственно публикации.Выберем в меню File пункт Publish Settings или нажмем комбинацию клавиш <Ctrl>+<Shift>+<F12>. На экране появится


Если беда все-таки случилась

Из книги ПК без напряга автора Жвалевский Андрей Валентинович

Если беда все-таки случилась Как ни предохраняйся, от случайных сбоев ни один компьютер не застрахован. Время от времени в системе могут возникать критические ошибки, приводящие к проблемам в работе Windows или невозможности ее запуска. Причинами таких ошибок могут быть


Итак, у вас проблема...

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Итак, у вас проблема... Мы обсудим первые две проблемы вместе, потому что подчас бывает трудно определить, с которой из них имеешь дело.Предположим, что что-то вдруг перестало работать или работает не так, как ожидается. Что


Что такое истина?

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Что такое истина?      Каждое условное выражение проверяется "истинно" ли оно или ложно. При этом возникает интересный вопрос: Что такое истина?      Мы можем ответить на этот вечный вопрос по крайней мере так, как он решен в языке Си. Напомним, во-первых, что выражение в Си


Осложнения с понятием "истина"

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Осложнения с понятием "истина"      Растяжимость понятия истина в языке Си может привести и к неприятностям. Рассмотрим следующую программу: /* занятость */main( ){int age = 20;while(age++  <= 65){ if((age % 20) = =0) /* делится ли возраст на 20 ? */    printf(" Вам %d. Поздравляем с повышением! ", age);  if (age =


Итак…

Из книги UNIX — универсальная среда программирования автора Пайк Роб

Итак… Разработка программного кода ядра операционной системы не требует наличия гениальной, волшебной или густой бороды Unix-хакера. Хотя ядро операционной системы и имеет некоторые свои особенности, оно незначительно отличается от любого большого программного