Тернарная операция (вопросительный знак) в C |
![]() |
Добавил(а) microsin |
операнд-1 ? операнд-2 : операнд-3 Оператор такого типа называют тернарным оператором или условным оператором. Применяется на языках C, C++, Java. Его результат зависит от условия, которое вычисляется до вопросительного знака. Операнд-1 должен быть целого или плавающего типа или быть указателем. Он оценивается с точки зрения его эквивалентности 0. Если операнд-1 не равен 0, то вычисляется операнд-2 и его значение является результатом операции. Если операнд-1 равен 0, то вычисляется операнд-3 и его значение является результатом операции. Следует отметить, что вычисляется либо операнд-2, либо операнд-3, но не оба. Тип результата зависит от типов операнда-2 и операнда-3, следующим образом. 1. Если операнд-2 или операнд-3 имеет целый или плавающий тип (отметим, что их типы могут отличаться), то выполняются обычные арифметические преобразования. Типом результата является тип операнда после преобразования. max = (d <= b) ? b : d; Здесь переменной max присваивается максимальное значение переменных d и b. [Ссылки] |