Начало работы с Си

Опубликовано: 15 Сентября, 2022

Что такое С :

  • В 1972 году великий ученый-компьютерщик Деннис Ритчи создал новый язык программирования под названием C в лабораториях Белла .
  • Он был создан из языков программирования ALGOL , BCL и B.
  • Он содержит все функции этих языков и множество других дополнительных концепций, которые делают его уникальным по сравнению с другими языками программирования.
  • Это мощный язык программирования, тесно связанный с операционной системой UNIX, и большинство операционных систем UNIX написаны на языке C.
  • Первоначально он был ограничен операционной системой UNIX, но по мере того, как он начал распространяться по всему миру, он стал коммерческим, и многие компиляторы были выпущены для кросс-платформенных систем.
  • Сегодня C работает под множеством операционных систем и аппаратных платформ.
  • Когда он начал развиваться, было выпущено множество версий языка.
  • Время от времени разработчикам становилось трудно идти в ногу с последней версией, поскольку системы работали под более старыми версиями.
  • Чтобы гарантировать, что язык C останется стандартным, Американский национальный институт стандартов (ANSI) определил коммерческий стандарт для языка C в 1989 году .
  • Позже он был одобрен Международной организацией по стандартизации (ISO) в 1990 году. Язык программирования C также называется ANSI C.

Приложения C :

  • Он широко используется для разработки настольных приложений, а также для разработки браузеров и их расширений.
  • Google Chromium построен на языке программирования C.
  • Он широко используется во встроенных системах.
  • Он используется для разработки баз данных. MySQL — самая популярная программа для работы с базами данных, созданная на языке C.
  • Он используется при разработке операционных систем, таких как Apple OS X , Microsoft Windows и Symbian , которые разрабатываются с использованием языка C.
  • Он используется для разработки настольных компьютеров, а также операционной системы мобильного телефона.
  • Он используется для производства компиляторов.
  • Он широко используется в приложениях IoT.

Особенности С :

  • C — это структурированный язык программирования, в котором программа разделена на различные модули.
  • C — процедурно-ориентированный язык программирования.
  • C — это язык среднего уровня.
  • Каждый модуль может быть написан отдельно, а вместе он образует единую программу на языке C. Эта структура упрощает тестирование, обслуживание и отладку процессов.
  • C содержит 32 ключевых слова , различные типы данных и набор мощных встроенных функций, которые делают программирование очень эффективным.
  • Программа на C содержит различные функции, являющиеся частью библиотеки. Программист может добавлять в библиотеку свои собственные возможности и функции.
  • Эти функции доступны и используются в любое время в программе. Эта функция упрощает работу со сложным программированием.
  • Это популярный выбор для приложений системного уровня.

Работа C:

  • C является компилируемым языком.
  • Компилятор — это специальный инструмент, который компилирует программу и преобразует ее в объектный файл, который может быть прочитан машиной.
  • После процесса компиляции компоновщик объединит различные объектные файлы и создаст один исполняемый файл для запуска программы.
  • На следующей диаграмме показано выполнение программы на языке C:

В настоящее время различные компиляторы доступны в Интернете. Функциональность никогда не будет отличаться, и большинство компиляторов будут предоставлять функции, необходимые для выполнения программ как на C, так и на C++. Ниже приводится название таких компиляторов:

  • Clang-компилятор
  • Компилятор MinGW (минималистский GNU для Windows)
  • Портативный компилятор C
  • Турбо С

Программа 1:
Ниже приведена программа на C для печати Hello World:

C




// C program printing Hello World
 
// Pre-processor directive
#include <stdio.h>
 
// Driver Code
void main()
{
    // Print on the screen
    printf("Hello World");
 
    // Terminating function
    getch();
}

Выход

Объяснение:

  • директива препроцессора
    • #include — это директива препроцессора в C.
    • #include , stdio — это библиотека, в которой определена функция printf().
    • Он используется для генерации вывода. Прежде чем использовать эту функцию, сначала включите требуемый файл, также известный как файл заголовка (.h).
  • Основная функция: основная функция является частью каждой программы на C. Он может быть представлен в различных формах, таких как:
    • главный()
    • основной ()
    • пустая функция()
    • основной (пустой)
    • недействительный основной (пустой)
    • интервал основной (пустой)
  • Пустые круглые скобки означают, что эта функция не принимает никаких аргументов, значений или параметров.
  • Ключевое слово void означает, что функция не возвращает никакого значения, в этом случае последним оператором всегда будет getch().

Программа 2:
Ниже показана программа на C, печатающая «Hello World»:

Объяснение:

  • В приведенном выше примере ключевое слово int означает, что функция вернет целочисленное значение. В этом случае последний оператор всегда должен возвращать 0.
  • В исходном коде после объявления функции main укажите открывающую и закрывающую круглые скобки. Фигурные скобки {} обозначают начало и конец программы.
  • Эти скобки всегда должны ставиться после основной функции.
  • Внутри этих скобок пишется весь программный код, например, декларативная и исполняемая части.
  • Функция printf генерирует вывод, и на консоли отображается «Hello World».
  • точка с запятой; определяет конец предложения. В C каждый оператор должен заканчиваться точкой с запятой.

Шаги для запуска программы C в CodeBlocks:

  • Создайте новый проект, как показано ниже:

  • Во всплывающем окне сначала выберите файл, затем выберите «Источник C/C++» и нажмите «Перейти», как показано ниже:

  • Продолжить, нажав «Далее».

  • Чтобы создать новый файл, выберите файл «C» , затем нажмите кнопку «Далее» , чтобы продолжить.

  • Задайте путь к файлу, нажав кнопку «…», окно проводника разрешает создание файла C.

  • Выберите путь к вашему новому файлу C, затем его имя с расширением .c и сохраните его.

  • Наконец, чтобы подтвердить создание файла C, нажмите «Готово».

  • Введите код, сохраните его и скомпилируйте, нажав кнопку «Build & Run».

Комментарии и их типы в программе на C:

Комментарий: Комментарий — это пояснение или описание исходного кода программы. Это помогает разработчику объяснить логику кода и улучшает читаемость программы. Во время выполнения комментарий игнорируется компилятором.

Типы комментариев:

  1. Однострочный комментарий: однострочные комментарии, в которых используется двойная косая черта, // предназначенная для отдельных строк комментария.
  2. Многострочный комментарий: комментарий, начинающийся с косой черты /* и заканчивающийся косой чертой */, который можно разместить в любом месте вашего кода, на одной или нескольких строках.

Программа 1:

Ниже приведена программа на C, иллюстрирующая использование однострочного комментария:

Программа 2:

Ниже приведена программа на C, иллюстрирующая использование многострочного комментария:

Нужны комментарии:

  1. Хороший программист, который пишет коды, понятные человеку, лучше программиста, который генерирует коды, понятные только машине.
  2. Поэтому настоятельно рекомендуется вставлять комментарии в код, потому что это хорошая практика программирования.
  3. Комментарии не влияют на программу, поскольку компилятор их игнорирует.
  4. Комментарии помогают разработчику понять логику/алгоритм кода, если он возвращается к нему спустя долгое время.

Набор символов:

  • Как и любой другой язык, 'C' также имеет свой собственный набор символов.
  • Программа — это набор инструкций, которые при выполнении генерируют выходные данные.
  • Данные, которые обрабатывает программа, состоят из различных символов и символов.
  • Сгенерированный вывод также представляет собой комбинацию символов и символов.

Компилятор всегда игнорирует использование символов, но широко используется для форматирования данных. Ниже приведен набор символов в программировании на языке C. Набор символов в C делится на следующие типы:

Компилятор всегда игнорирует использование символов, но широко используется для форматирования данных. Ниже приведен набор символов в программировании на языке C:

  • Буквы: все строчные и прописные буквы от A до Z.
  • Числа: все цифры от 0 до 9.
  • Пробелы: например, пустое пространство, новая строка, возврат каретки и вкладка «Горизонтальная».
  • Специальные символы

Токен :

  • Токен — это наименьшая единица в программе на языке C.
  • Это каждое слово и пунктуация, с которыми вы сталкиваетесь в программе на C.
  • Компилятор разбивает программу на наименьшие возможные единицы (токены) и переходит к различным этапам компиляции.
  • Токен делится на шесть различных типов, а именно: ключевые слова, операторы, строки, константы, специальные символы и идентификаторы.

Ключевые слова и идентификаторы :

В 'C' каждое слово может быть либо ключевым словом, либо идентификатором.

  • Ключевые слова имеют фиксированное значение, и значение не может быть изменено. Они действуют как строительный блок программы 'C'. Всего в «C» 32 ключевых слова. Ключевые слова пишутся строчными буквами.
  • Идентификатор — это не что иное, как имя, присвоенное элементу в программе.
    • Пример: имя переменной, функции и т. д.
    • Идентификаторы — это определяемые пользователем имена, состоящие из стандартного набора символов «C».
    • Как следует из названия, идентификаторы используются для идентификации определенного элемента в программе.
    • Каждый идентификатор должен иметь уникальное имя.
    • Для идентификаторов необходимо соблюдать следующие правила:
      • Первым символом всегда должен быть алфавит или знак подчеркивания.
      • Он должен быть сформирован с использованием только букв, цифр или подчеркивания.
      • Ключевое слово не может использоваться в качестве идентификатора.
      • Он не должен содержать никаких пробелов.
      • Имя должно быть осмысленным.

Резюме:

  • Маркер — это наименьшая единица в программе.
  • Ключевое слово зарезервировано для языка.
  • Всего 32 ключевых слова.
  • Идентификатор используется для идентификации элементов программы.

Переменные:

  • Переменная — это идентификатор, который используется для хранения некоторого значения.
  • Константы никогда не могут изменяться во время выполнения.
  • Переменные могут изменяться во время выполнения программы и обновлять хранящееся в ней значение.
  • Одна переменная может использоваться в нескольких местах программы.
  • Имя переменной должно быть осмысленным.
  • Он должен представлять цель переменной.
  • Пример: рост, возраст — это значимые переменные, которые представляют цель, для которой он используется.
    • Переменная высоты может использоваться для хранения значения высоты.
    • Переменная age может использоваться для хранения возраста человека.
  • Переменная должна быть сначала объявлена, прежде чем она будет использоваться где-то внутри программы.
  • Имя переменной формируется с использованием символов, цифр и символа подчеркивания.

Ниже приведены правила, которые необходимо соблюдать при создании переменной:

  1. Имя переменной должно состоять только из символов, цифр и знака подчеркивания.
  2. Имя переменной не должно начинаться с цифры.
  3. Имя переменной не должно состоять из пробелов.
  4. Имя переменной не должно состоять из ключевого слова.
  5. «C» — это язык, чувствительный к регистру, что означает, что переменные с именами «возраст» и «возраст» различны.

Типы данных : «C» предоставляет различные типы данных, чтобы программист мог легко выбрать подходящий тип данных в соответствии с требованиями приложения. Ниже приведены три типа данных:

  • Примитивные типы данных
  • Производные типы данных
  • Пользовательские типы данных

Ниже приведены пять основных типов фундаментальных данных:

  • int для целочисленных данных
  • char для символьных данных
  • float для чисел с плавающей запятой
  • double для чисел с плавающей запятой двойной точности
  • пустота

Производные типы данных:

  • Массив, функции, указатели, структуры являются производными типами данных.
  • Язык C предоставляет более расширенные версии вышеупомянутых первичных типов данных.
  • Каждый тип данных отличается друг от друга по размеру и диапазону.
  • В следующей таблице показаны размер и диапазон каждого типа данных:

Типы данных

Размер

Диапазон

char или подписанный char 1 от -128 до 127
беззнаковый символ 1 0 т0 255
int или подписанный int 2 от -32768 до 32767
беззнаковое целое 2 от 0 до 65535
короткое целое или короткое целое без знака 2 от 0 до 255
подписанный короткий инт 2 от -128 до 127
long int или Signed long int 4 -2147483648 до 2147483647
беззнаковое длинное целое 4 от 0 до 4294967295
плавать 4 3.4E-38 до 3.4E+38

Условное заявление:

  • Условные операторы в программировании на C используются для принятия решений на основе условий.
  • Он выполняется последовательно, когда вокруг операторов нет условий.
  • Если задать некоторые условия для блока операторов, поток выполнения может измениться в зависимости от результата, оцениваемого условием. Этот процесс называется принятием решения в «C».
  • В программировании на языке C условные операторы возможны с помощью следующих двух конструкций:
    • Если заявление
    • Оператор if-else
  • Это также называется ветвлением, поскольку программа решает, какой оператор выполнить, основываясь на результате оцениваемого условия.

Типы условного оператора:

  • Если заявление
  • Реляционные операторы
  • Оператор «если-иначе»
  • Условные выражения
  • Вложенные операторы if-else
  • Вложенные операторы Else-if

Если заявление:

  • Это один из мощных условных операторов.
  • Оператор if отвечает за изменение потока выполнения программы.
  • Он всегда используется с условием.
  • Условие оценивается первым перед выполнением любого оператора внутри тела if.

Syntax:
             if(condition)
             {
                 instruction;
            }

  • Условие оценивается как истинное или ложное.
  • True всегда является ненулевым значением, а false — значением, содержащим ноль.
  • Инструкции могут быть отдельной инструкцией или блоком кода, заключенным в фигурные скобки {}.

Ниже приведена программа на C, иллюстрирующая использование оператора if:

Объяснение:

  • В приведенной выше программе две переменные инициализируются с помощью num1 , num2 со значениями 1 , 2 соответственно.
  • Затем использовал оператор if с тестовым выражением, чтобы проверить, какое число является наименьшим, а какое — наибольшим.
  • Реляционное выражение было использовано в if построено. Поскольку значение num1 меньше, чем num2 , условие будет оцениваться как true .
  • Таким образом, он напечатает оператор внутри блока If.
  • После этого управление выйдет за пределы блока и программа завершится с успешным результатом.

Реляционные операторы: C имеет шесть реляционных операторов, которые можно использовать для формулирования логического выражения для принятия решения и проверки условий, которое возвращает true или false, ниже приведены некоторые из них:

  • < меньше чем
  • <= меньше или равно
  • > больше, чем
  • >= больше или равно
  • == равно
  • != Не равно

Ниже приведена программа на C, иллюстрирующая использование оператора отношения:

Оператор If-Else : это расширенная версия оператора If. Ниже приведена блок-схема, представляющая оператор if-else :

Syntax:
           if (test – expression)
          {
              True block of statement;
         }
       else
       { 
            False block of statements;
      } Statements;

  • В этом типе операторов, если значение test-expression истинно, будет выполнен истинный блок операторов.
  • Если значение test-expression равно false, то будет выполнен блок операторов false.
  • В любом случае, после выполнения управление будет автоматически передано операторам, находящимся вне блока If.

Ниже приведена программа на C, демонстрирующая оператор if-else:

Условные выражения . Есть еще один способ выразить оператор if-else — ввести оператор ?: . В условном выражении оператор ?: имеет только один оператор, связанный с операторами if и else.

Ниже приведена программа на C, демонстрирующая условный оператор:

Вложенные операторы if-else:

  • Когда требуется ряд решений, используется вложенный if-else.
  • Вложенность означает использование одной конструкции if-else внутри другой.

Ниже приведена программа на C, демонстрирующая использование вложенных операторов if-else:


  • Вложенный else-if используется, когда требуются многопутевые решения.

Ниже приведена программа на C, иллюстрирующая использование вложенных операторов if-else для решения о многопутевости:

Петли:

  • Цикл выполняет последовательность операторов много раз, пока указанное условие не станет ложным.
  • Цикл состоит из двух частей: тела цикла и оператора управления.
  • Оператор управления представляет собой комбинацию некоторых условий, которые предписывают телу цикла выполняться до тех пор, пока указанное условие не станет ложным.
  • Цель цикла — многократное повторение одного и того же кода.
  • В основном существует 3 типа петель, они следующие:
    • Пока цикл
    • Цикл Do-While
    • Для цикла

Заявление о переключении:

  • Оператор switch в C проверяет значение переменной и сравнивает его с несколькими случаями.
  • После того, как найдено совпадение с прецедентом, выполняется блок операторов, связанных с этим конкретным случаем.
  • Каждый случай в блоке переключателя имеет другое имя/номер, который называется идентификатором.
  • Значение, предоставленное пользователем, сравнивается со всеми случаями внутри блока переключателей, пока не будет найдено совпадение.

Нить:

  • Строка в C — это не что иное, как набор символов в линейной последовательности.
  • 'C' всегда обрабатывает строку как одиночные данные, даже если она содержит пробелы.
  • Один символ определяется с помощью представления одинарной кавычки.
  • Строка представляется с помощью двойных кавычек.

Класс хранения:

  • Класс хранения представляет видимость и расположение переменной.
  • Он сообщает, из какой части кода мы можем получить доступ к переменной.
  • Класс хранения в C используется для описания следующих вещей:
    • Область действия переменной.
    • Место, где будет храниться переменная.
    • Инициализированное значение переменной.
    • Время жизни переменной.
    • Кто может получить доступ к переменной?
  • Таким образом, класс хранения используется для представления информации о переменной.

ПРИМЕЧАНИЕ. Переменная связана не только с типом данных, ее значением, но и с классом хранения.

Управление файлами: файл можно использовать для хранения большого объема постоянных данных.
Как и многие другие языки, C предоставляет следующие функции управления файлами:

  • Создание файла
  • Открытие файла
  • Чтение файла
  • Запись в файл
  • Закрытие файла

Процесс создания файла:

  • Всякий раз, когда вы работаете с файлом, первым шагом является создание файла.
  • Файл — это не что иное, как пространство в памяти, где хранятся данные.
  • Для создания файла в программе на языке C используется следующий синтаксис:

ФАЙЛ *fp;

fp = fopen (“file_name”, “mode”);

  • В приведенном выше синтаксисе файл представляет собой структуру данных, определенную в стандартной библиотеке.
  • Fopen — это стандартная функция, которая используется для открытия файла.
  • Если файл отсутствует в системе, то он создается, а затем открывается.
  • Если файл уже присутствует в системе, то он напрямую открывается с помощью этой функции.
  • fp — указатель файла, указывающий на тип файла.
  • Всякий раз, когда вы открываете или создаете файл, укажите операции, которые будут выполняться с файлом.
  • Файл в программировании на языке C может быть создан или открыт для чтения/записи.
  • Режим используется, чтобы указать, хотите ли вы открыть файл для какой-либо из указанных ниже целей.

Ниже приведены различные типы режимов программирования на языке C, которые можно использовать при работе с файлом:

Описание режима файла :

  • r: открыть файл для чтения. Если файл находится в режиме чтения, то никакие данные не удаляются, если файл уже присутствует в системе.
  • w: открыть файл для записи. Если файл находится в режиме записи, то создается новый файл, если файл вообще не существует. Если файл уже присутствует в системе, то все данные внутри файла усекаются, и он открывается для записи.
  • a: Откройте файл в режиме добавления. Если файл находится в режиме добавления, то файл открывается. Содержимое файла не меняется.
  • r+: Открыт для чтения и записи с самого начала.
  • w+: Открыть для чтения и записи, перезаписывая файл.
  • a+: Открыть для чтения и записи, добавить в файл.

В данном синтаксисе имя файла и режим указываются как строки, поэтому они всегда должны быть заключены в двойные кавычки.

Ниже приведен фрагмент кода C, показывающий использование файлового режима:

Выход:

Ниже приведен фрагмент кода C, показывающий путь, по которому пользователь хочет создать файл:

Выход:

Закрыть файл :

  • Всегда следует закрывать файл всякий раз, когда операции над файлом завершены.
  • Это означает, что содержимое и ссылки на файл удалены.
  • Это предотвращает случайное повреждение файла.
  • «C» предоставляет функцию fclose для выполнения операции закрытия файла.
  • Синтаксис fclose следующий:

Syntax: fclose (file_pointer);
Example:  FILE *fp;
               fp  = fopen (“data.txt”, “r”);
               fclose (fp);

  • Функция fclose принимает в качестве аргумента указатель файла.
  • Затем файл, связанный с указателем файла, закрывается с помощью функции fclose.
  • Он возвращает 0, если закрытие прошло успешно, и EOF (конец файла), если при закрытии файла произошла ошибка.

Запись в файл:

  • В C при записи в файл символы новой строки ' ' должны добавляться явно.
  • Библиотека stdio предлагает необходимые функции для записи в файл:
    • fputc(char, file_pointer): записывает символ в файл, на который указывает file_pointer.
    • fputs(str, file_pointer): записывает строку в файл, на который указывает file_pointer.
    • fprintf(file_pointer, str, variable_lists): печатает строку в файл, на который указывает file_pointer. Строка может дополнительно включать спецификаторы формата и список переменных variable_lists.

Ниже приведена программа на C, иллюстрирующая использование fputc():

C




// C program illustrating the use of
// fputc()
 
#include <stdio.h>
 
// Function to illustrate the use of
// fputc()
void fputc_func()
{
    int i;
    FILE* fptr;
    char fn[50];
    char str[] = "Hi my name is madhu ";
 
    // "w" defines "writing mode"
    fptr = fopen("fputc_test.txt", "w");
    for (i = 0; str[i] != " "; i++) {
 
        // Write to file using the
        // fputc() function
        fputc(str[i], fptr);
    }
    fclose(fptr);
}
 
// Driver Code
int main()
{
    // Function Call
    fputc_func();
 
    return 0;
}

Выход:

Функция:

  • Функция в программировании на C — это многократно используемый блок кода, который упрощает понимание и тестирование программы, а также позволяет легко модифицировать ее без изменения вызывающей программы.
  • Функции разделяют код и модулируют программу для получения лучших и эффективных результатов.
  • Короче говоря, большая программа делится на различные подпрограммы, которые называются функциями.

Указатели :

  • Указатель в C — это переменная, которая хранит адрес другой переменной.
  • Указатель также может использоваться для ссылки на другую функцию указателя.
  • Указатель может увеличиваться/уменьшаться, т.е. указывать на следующую/предыдущую ячейку памяти.
  • Цель указателя — сэкономить место в памяти и ускорить время выполнения.

Использование указателей: если объявить переменную v типа int, v фактически сохранит значение.

              Declaration: int v = 0; 
                                  Where v is equal to zero now.

  • Однако каждая переменная, кроме значения, имеет еще и свой адрес (или, проще говоря, место ее расположения в памяти).
  • Адрес можно получить, поставив амперсанд ( & ) перед именем переменной.
  • Если вывести на экран адрес переменной, то он будет выглядеть как совершенно случайное число (причем от запуска к запуску оно может быть разным).

Объявление указателя:

  • Подобно переменным, указатели в программировании на C должны быть объявлены до того, как их можно будет использовать в программе.
  • Указатели могут называться как угодно, если они подчиняются правилам именования C.
  • Объявление указателя имеет следующую форму:

          Declaration: data_type * pointer_variable_name;

Инициализировать указатель:

  • После объявления указателя инициализируйте его как стандартные переменные с адресом переменной.
  • Если указатели в программировании на C не инициализированы и не используются в программе, результаты будут непредсказуемыми и потенциально катастрофическими.
  • Чтобы получить адрес переменной, используйте оператор амперсанда (&), который ставится перед именем переменной, адрес которой необходим.
  • Инициализация указателя выполняется с использованием следующего синтаксиса:

Syntax:  pointer = &variable; 

Ниже приведена программа на C, иллюстрирующая реализацию указателя
Программа 1:

Программа 2:

Преимущества указателей:

  • Указатели полезны для доступа к ячейкам памяти.
  • Указатели обеспечивают эффективный способ доступа к элементам структуры массива.
  • Указатели используются для динамического выделения памяти, а также для ее освобождения.
  • Указатели используются для формирования сложных структур данных, таких как связанный список, граф, дерево и т. д.

Недостатки указателей:

  • Указатели немного сложны для понимания.
  • Указатели могут привести к различным ошибкам, таким как ошибки сегментации, или могут получить доступ к ячейке памяти, которая вообще не требуется.
  • Если указателю предоставляется неправильное значение, это может привести к повреждению памяти.
  • Указатели также ответственны за утечку памяти.
  • Указатели сравнительно медленнее, чем переменные.
  • Программистам очень сложно работать с указателями; поэтому ответственность за осторожное обращение с указателем лежит на программисте.

Побитовые операторы:

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

Побитовое И:

  • Это один из наиболее часто используемых логических побитовых операторов.
  • Он представлен одним знаком амперсанда (&).
  • С каждой стороны оператора (&) записываются два целочисленных выражения.
  • Результат побитовой операции И равен 1, если оба бита имеют значение 1; в противном случае результат всегда равен 0.

Побитовое ИЛИ:

  • Он представлен одной вертикальной чертой (|).
  • С каждой стороны оператора (|) записываются два целочисленных выражения.
  • Результат побитовой операции ИЛИ равен 1, если хотя бы одно из выражений имеет значение 1; в противном случае результат всегда равен 0.

Побитовое исключающее ИЛИ:

  • Он представлен символом (^).
  • С каждой стороны оператора (^) записываются два целочисленных выражения.
  • Результат побитовой операции исключающее ИЛИ равен 1, если только одно из выражений имеет значение 1. В противном случае результат всегда равен 0.

Операторы побитового сдвига:

  • Операторы побитового сдвига используются для перемещения/сдвига битовых комбинаций влево или вправо. Влево и вправо — это два оператора сдвига, предоставляемые «C», которые представлены следующим образом:
    • Операнд << n (сдвиг влево)
    • Операнд >> n (правый сдвиг)

Побитовый оператор комплимента:

  • Побитовое дополнение также называется оператором дополнения, поскольку оно всегда принимает только одно значение или операнд.
  • Это унарный оператор.
  • При выполнении дополнения к любым битам все единицы становятся нулями и наоборот.
  • Если целочисленное выражение содержит 0000 1111 , то после выполнения операции побитового дополнения значение станет равным 1111 0000 .
  • Оператор побитового дополнения обозначается символом тильды (~) .

Ниже приведена программа на C, иллюстрирующая побитовый оператор:

Работа управления памятью:

  • При объявлении переменной с использованием базового типа данных компилятор C автоматически выделяет пространство памяти для переменной в пуле памяти, называемом стеком.
  • Например, переменная с плавающей запятой обычно занимает 4 байта (в зависимости от платформы) при ее объявлении.
  • Эту информацию можно проверить с помощью оператора sizeof .

Динамическое выделение памяти:

  • Динамическое выделение памяти — это ручное выделение и освобождение памяти в соответствии с вашими программными пот