9 интересных трюков на Си, с которыми вы раньше не сталкивались
30К открытий30К показов
В этой статье мы рассмотрим несколько редких приёмов языка Си. О некоторых из них я раньше не слышал, и вы, скорее всего, тоже. Если ваш преподаватель или коллега хвастаются знанием Си, просто задайте им пару вопросов об этих трюках, и если они справятся, то они действительно шарят ?
Используем возвращаемое значение scanf() для проверки конца файла
Очень полезно в системах с автоматической проверкой, где подача входных данных заканчвается EOF.
"%m" как аргумент printf() выводит “Success”
"%m"
выводит “Success” только в том случае, когда errno == 0
. Это сокращение для строкового представления последнего наблюдаемого состояния ошибок. Например, если функция выдаст ошибку до printf
, вывод будет другим.
Неявная инициализация целых нулём и единицей
Вывод чисел от 1 до 200 без использования циклов, переходов и рекурсии
C++ Sucks?
Вы будете удивлены, но этот код выведет надпись “C++Sucks”, и вот тому объяснение.
А вы сталивались с оператором “спуска” -->?
На самом деле -->
— это никакой не оператор, а комбинация двух операторов: --
и >
. Разберёмся на примере: в условии цикла переменная x
уменьшается, но возвращается старое значение x
, которое сравнивается с 0
оператором >
.
Вывод:
Магия scanf
Сложение чисел без использования оператора +
Кстати, с другими примерами использования битовых операций можно ознакомиться в наших статьях.
30К открытий30К показов