Каталог статей

Самоучитель программирования на языке Си – все, что вам нужно знать о языке Си

Самоучитель программирования на языке Си – все, что вам нужно знать о языке Си

Язык программирования Си – это компилируемый, структурный язык программирования среднего уровня, разработанный в американской компании AT & T’s Bell Laboratories в 1972 году, созданный и написанный Деннисом Ричи для перестройки операционной системы UNIX. Это улучшенная версия языка B, разработанного Кеном Томпсоном.

В течение 1980-х годов язык C постепенно набирал популярность. Он стал одним из наиболее широко используемых языков программирования. Язык программирования Си – это отличный язык для изучения программирования для начинающих. Многие популярные программы написаны на C, такие как Oracle, MySQL, основная библиотека Android, почти все драйверы устройств. Большая часть WINDOWS, LINUX и веб-браузеров написаны на C. Если вам нужно тесно взаимодействовать с аппаратным обеспечением без ущерба для производительности, C будет вашим выбором.

Сертификация по программированию на C может повысить ваши шансы быть принятым на соответствующую должность. Ознакомьтесь с бесплатным курсом Great Learning Academy по введению в программирование на языке Си, чтобы повысить свою квалификацию и быть впереди всех.

Применение программирования на языке Си

Си используется для разработки операционных систем (таких как Windows, Linux), графического интерфейса пользователя, интегрированной среды разработки, разработки браузеров, компиляторов, баз данных, графических пакетов, текстовых процессоров, электронных таблиц, мобильных и компьютерных игр. Си используется во встраиваемых системах, сетевых устройствах, а также для разработки настольных приложений.

История языка Си

Особенности языка C: Существует множество особенностей или характеристик языка C, благодаря которым он остается достаточно известным даже спустя около 50 лет после разработки. Он обеспечивает:

Особенности языка Си

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

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

Процесс компиляции можно разделить на четыре отдельных этапа: предварительная обработка, компиляция, сборка и компоновка. Первый этап компиляции называется препроцессинг. На этом этапе исходный файл берется на вход и сканируется на наличие всех директив препроцессора или просто “#кодов”. Он генерирует препроцессированный файл с расширением “.i”, и в этом выходном файле будут разрешены все макросы и удалены комментарии. Следующим этапом является компиляция, которая принимает препроцессированный файл в качестве входного и преобразует исходный код высокого уровня в ассемблерные инструкции. Которые специфичны для архитектуры целевого процессора. При этом создается файл с расширением “.s”. Следующий этап – сборка, которая преобразует инструкции ассемблера, полученные в результате компиляции, и генерирует объектный код с расширением “.o” (платформа на базе Linux) и “.obj” (платформа на базе Windows). O/P состоит из фактических инструкций, которые будут выполняться целевым процессором. До сих пор мы включали только заголовочный файл, который содержит объявление функций. Такие функции, как scanf и printf, используемые в нашей программе, все еще не имеют определения. Они будут определены в некоторых библиотечных файлах. Линковка – это заключительный этап компиляции. На этом этапе все статические библиотеки и объектные файлы генерируются в один исполняемый файл с расширением “.out” для платформы Linux и “.exe” для платформы Windows.

Зачем изучать программирование на языке Си –

Настройка среды/процесс установки – Если вы хотите настроить среду для языка программирования C, вам понадобятся следующие два программных инструмента, имеющиеся на вашем компьютере: (a) текстовый редактор и (b) компилятор C, но теперь, чтобы начать изучать программирование на C, вам достаточно установить компилятор C в вашей системе, и в настоящее время оба компилятора C и C++ поставляются в виде единого интегрированного пакета, который служит для разработки программ на C и C++.

Установка на UNIX/Linux –

Если вы используете Linux или UNIX, то проверьте, установлен ли GCC в вашей системе, введя следующую команду из командной строки -.

$ gc c-v

Если на вашей машине установлен компилятор GNU, то он должен вывести сообщение следующего вида –

Using built-in specs.Target: i386-redhat-linuxConfigured with: ../configur e-prefix=/usr …….Потоковая модель: posixgcc версии 4.1.2 20080704 (Red Hat 4.1.2-46).

Если GCC не установлен, то вам придется установить его самостоятельно, используя подробные инструкции, доступные на сайте https://gcc.gnu.org/install/.

Данное руководство написано на основе Linux, и все приведенные примеры были скомпилированы на Cent OS.

Установка на Mac OS

Если вы используете Mac OS X, самый простой способ получить GCC – загрузить среду разработки Xcode с сайта Apple и следовать простым инструкциям по установке. Как только вы установите Xcode, вы сможете использовать компилятор GNU для C/C++.

Установка на Windows

Чтобы установить GCC на Windows, вам необходимо установить MinGW. Чтобы установить MinGW, перейдите на домашнюю страницу MinGW www.mingw.org и перейдите по ссылке на страницу загрузки MinGW. Загрузите последнюю версию программы установки MinGW, которая должна называться MinGW-.exe.

При установке Min GW, как минимум, необходимо установить gcc-core, gcc-g++, binutils и среду выполнения MinGW, но вы можете захотеть установить больше.

Добавьте подкаталог bin вашей установки MinGW в переменную окружения PATH, чтобы вы могли указать эти инструменты в командной строке по их простым именам.

После завершения установки вы сможете запускать gcc, g++, ar, ranlib, dlltool и некоторые другие инструменты GNU из командной строки Windows.

Список компиляторов C для Windows OS – Поскольку на рынке онлайн доступны различные компиляторы, здесь приведены списки некоторых часто используемых:

Список компиляторов языка Си для Windows OS

Все вышеперечисленные компиляторы для C можно скачать бесплатно, но есть и некоторые другие платные компиляторы для C, или программисты могут получить их в пробной версии:

Ниже приведены IDE (интегрированные среды разработки), которые автоматически загружают все необходимое для начала программирования и работы с языком программирования Си.

Установите Dev C++ – Установите Dev C++ с сайта sourceforge.com. Dev-C++ – это интегрированная среда разработки (IDE) для программирования на языках C и C++. Она поставляется в комплекте с 64-битным портом GCC MinGW или TDM-GCC в качестве компилятора.

Установите Code::Block s-Install codeblocks-17.12mingw-setup.exe . Codeblocks – это кроссплатформенная IDE, построенная на основе wxWidgets, разработанная как расширяемая и настраиваемая. Работает под Windows и Linux. Если ссылка на установочный файл не работает, перейдите на сайт codeblocks.org и установите программу.

Установите Cygwin – Хорошо, этот метод не использует IDE, как предыдущие, но это еще один способ заставить программу на языке Си работать в операционной системе Windows через командную строку.

Сначала установите GNU Compiler Collection или сокращенно GCC на Microsoft Windows. Я покажу вам различные способы установки GCC, который изначально был написан как компилятор для операционной системы GNU (Unix-подобной операционной системы).

Cygwin (был создан программный интерфейс, который имеет вид и ощущения среды Unix, но работает в операционной системе Windows). Cygwin позволяет интегрировать приложения Windows, Unix-подобные приложения и данные.

Шаги установки следующие:

  1. Установите Cygwin, который дает нам Unix-подобную среду, работающую в Windows.
  2. Установите набор пакетов Cygwin, необходимых для сборки GCC.
  3. Из Cygwin загрузить исходный код GCC, собрать и установить его.
  4. Протестируйте новый компилятор GCC в режиме C++14, используя опци ю-std=c++14.

Структура программы на языке Си –

Секция документации
Секция ссылок
Секция определения
Секция глобального объявления
Main()
Функция 1 ……….
UserFunction n

Раздел документации – Первый раздел – это раздел документации. Он состоит из строк комментариев, которые не компилируются компилятором. Комментарии добавляются в программу для повышения ее читабельности и понятности. Они записываются двумя обратными косыми чертами “//” перед утверждениями. Это используется для написания однострочного комментария. Многострочный комментарий пишется с помощью обратной косой черты и звездочки “/*”, за которой следует строка комментария, за которой следует звездочка и обратная косая черта “*/”.

В комментариях указывается название программы, автор и другие детали, связанные с программой. Они используются для будущих ссылок.

Секция ссылок – В этой секции указываются все библиотечные файлы, включенные в программу. Компилятор получает информацию о библиотечных файлах, которые должны быть связаны с программой. Этот процесс называется связыванием. Все утверждения, начинающиеся со знака “#” include, относятся к секции link. Например, утверждение “#include” связывает библиотечный файл “stdio” с программой.

Раздел определения – Здесь определяются все символические константы, которые будут использоваться в программе. Все утверждения, начинающиеся со знака “#”, относятся к секции определения.

#define pi=3.14;#define t

Раздел определения главной функции – Каждая программа на языке c должна иметь одну главную функцию. Все утверждения в разделе main должны находиться между открывающими и закрывающими скобками. Этот раздел состоит из двух частей. Первая часть – это объявление. Поскольку каждая переменная в языке Си должна быть объявлена перед использованием. Поэтому все переменные, которые будут использоваться в основном разделе, объявляются здесь, в разделе объявления.

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

Токен в C – Программа состоит из различных токенов. Токен может быть ключевым словом, идентификатором, константой, строкой или любым символом.

Пример

Здесь каждое слово этой программы называется маркером.

Точка с запятой : Это терминатор оператора. Каждое утверждение должно завершаться символом “;”.

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

//*Думайте о зеленом и увеличивайте зеленый цвет./*Давайте переместимся в небо……….. для защиты Земли. */

Идентификатор: Идентификатор – это имя, используемое для идентификации переменной, функций и элементов, определяемых пользователем. Идентификатор – это специфическая форма лексемы. Идентификатор начинается с буквы от A до Z, от a до z или “_”, за которой следует ноль или более букв, знаков подчеркивания и цифр (от 0 до 9). В языке Си не допускаются знаки препинания, такие как @, $ и % в идентификаторах.

Язык программирования C чувствителен к регистру. Таким образом, Manpower и manpower – это два разных идентификатора в C.

Ключевое слово: Ключевые слова – это один из видов лексем. Зарезервированное слово языка называется ключевым словом. Эти ключевые слова не могут использоваться в качестве идентификаторов. Мы можем использовать его внутри, но не самостоятельно. В языке Си существует 33 ключевых слова.

auto

else

long

switch двойной break enum резистор
typedef case extern возврат
объединение char float short
беззнаковый const для знаковый
void продолжить перейти на sizeof
volatile по умолчанию static While
int If struct упакованный
do Пробельные символы : Строка, содержащая только пробельные символы или комментарии, называется пустой строкой. Компилятор языка Си полностью игнорирует пустую строку. Пробельные символы – это термин, используемый в языке Си для описания пустых строк, табуляции, символов новой строки и комментариев. Пробельные символы отделяют один элемент от другого в выражении, чтобы компилятор мог их распознать. int var_a; Если требуется пробел, мы должны указать хотя бы один. Синтаксис для написания main() или программы на языке c: #includeint main()

Синтаксис определения или объявления переменной:

datatype variable-name;Пример: int a;

Некоторые Escape-последовательности;

a : звук звонкаb : backspace f : форма feed

: новая строкаt : tab : нулевой символv : вертикальная табуляция

Функции ввода-вывода:

Синтаксис функций ввода-вывода с форматированием:

Scanf(“спецификатор формата”,&переменная-имя);Пример- scanf(“%d”,&a);Printf(“спецификатор формата”,переменная-имя);Пример: printf(“%d”,a);

Некоторые спецификаторы формата:

шестнадцатеричный

Дататипы: Тип данных – это тип данных, который используется в программе. Другими словами, мы можем сказать, что он используется для объявления переменной. Тип данных определяет, как мы вводим данные в нашу программу и какой тип данных мы вводим. Существует два типа типов данных: а) первичный тип данных, б) вторичный тип данных.

%d,i => decimal no%o => octal%f => float%c => single character%u => unsinged decimal no%x,X => Первичный или основной тип данных – i)int, ii) char, iii)float, iv) double

Вторичный или производный тип данных – i) массив, ii) указатель, iii) структура, iv) объединение.

  1. Модификаторы: Модификаторы используются как префикс к типу данных для переопределения размера и диапазона типа данных.
  2. Systax: modifier datatype variable-name;

Существует два типа модификаторов: i) модификатор размера (short, long, longlong), ii) модификатор знака (signed, unsigned).

Короткий модификатор – Мы можем использовать короткий модификатор только с типом данных “int”. Как объяснялось ранее, int занимает различное пространство памяти, например, 2 байта, 4 байта или 8 байт; это зависит от архитектуры компьютера и компилятора. Если вы хотите выделить фиксированное пространство памяти для int, то вы можете использовать модификатор short. Размер модификатора short равен двум байтам. Поэтому, если вы хотите хранить небольшое целочисленное значение, вы можете использовать этот модификатор с типом данных int.

Short int a;

Модификатор long и longlong: Вы можете использовать эти два модификатора, когда вы хотите увеличить размер текущего типа данных, вы можете использовать модификатор long с int и double. Мы не можем использовать их с символами или float. Размер модификатора long составляет 4 или 8 байт; это зависит от архитектуры компьютера и компилятора.

long int a;

long double b;

Мы можем использовать longlong только с целым числом. Размер longlong составляет 8 байт.

Longlong int a;

Модификатор Unsigned : Мы можем использовать модификатор unsigned с типами данных int и character. Это ключевое слово можно использовать для тех переменных, которые могут принимать только значения “0” и “положительное значение”, отрицательные значения они не принимают.

unsigned int a;

unsigned char b;

Если мы не упомянули ни одного

Типы данных в C – Тип данных используется для объявления или определения переменной. Он определяет формат хранения данных для переменной. В объявлении каждой переменной обязательно указывается ее тип данных. Существует три типа типов данных:

int greenWorld;

Здесь greenWorld – это переменная int (целочисленный тип), в которой мы можем хранить только целочисленные значения, например 2,4. Мы не можем хранить здесь 2.6 (для этого используется тип данных float).

Переменные C – Переменная – это объект, который изменяется или меняется во времени. В программировании мы должны хранить результаты вычислений, и они хранятся в памяти компьютера. Память компьютера состоит из множества маленьких ячеек памяти. Каждая ячейка памяти имеет свой адрес. Имена переменных – это имена, присвоенные ячейкам памяти. Нам не нужно беспокоиться о том, в каком месте памяти хранится ваше значение. Наша задача – просто дать имя, а внутри оно будет указывать на некоторую ячейку памяти.

Как показано на рисунке, 12345 – это адрес ячейки памяти, содержащей константу 9. Чтобы упростить использование ячейки памяти, мы даем ячейке памяти имя greenWorld. Таким образом, 9 хранится в ячейке памяти с именем greenWorld. Здесь 10 – константа, а имя ячейки памяти называется именем переменной. Эта переменная может содержать другое значение в другое время.

Если вы присваиваете переменной некоторое значение во время объявления, то это называется инициализацией.

int greenWorld = 9;

Константа: Как следует из названия, константа – это то, что никогда не меняется. Или мы можем сказать, что константа – это сущность, которая относится к фиксированным значениям и не может быть изменена. Мы можем определить константу в нашем коде с помощью #define или с помощью ключевого слова const.

Определите константу с помощью #define:

Синтаксис для #define: #define NAME(macro) value

Работа препроцессора (не компилятора) заключается в замене имени на значение. Препроцессор выполняет работу по замене заголовочных файлов их фактическим содержанием, как пример #include будет заменен препроцессором. Имя ” NAME” также будет заменено на это “значение”, доступное здесь.

Здесь мы определяем “PI” с 3.14159, где “PI” – это ИМЯ, а “3.14159” – значение. Мы просто напечатаем этот “PI” вместо использования константы “3.14159” и напечатаем его до 3 знаков после запятой. На выходе получится “3.141”.

Что мы должны или не должны делать во время определения константы:

Пожалуйста, не добавляйте точку с запятой в конце.

Хорошей практикой является выбор заглавной буквы для ИМЕНИ.

Мы можем использовать макросы как функции.

Здесь 5 умножается с помощью макроса, сначала выполняется замена. Сначала расширение, затем оценка. Здесь расширение означает, что макрос расширяется до x+y и заменяется на 5*4+3, а затем все выражение оценивается. Результат 5*4+3, согласно правилу BODMAS, сначала оценивается 5*4, что дает нам 20, затем к нему прибавляется 3, в результате получается 23.

Определение константы с помощью const : Вы можете использовать ключевое слово const перед переменной. Например, мы можем определить переменную типа “int var”, просто поставив ключевое слово const перед этой переменной, но при этом мы не будем менять ее значение нигде в коде. Предположим, что мы хотим присвоить переменной другое значение, что мы хотим иметь возможность сделать, потому что, когда мы определили ее как константу, вы не сможете изменить ее значение. Константа просто означает, что это значение, какое бы оно ни было присвоено переменной, является постоянным.

Здесь мы определили переменную и присвоили ей значение, равное 73, и просто собираемся вывести это значение с помощью функции “printf”. На выходе мы получили 73. Теперь мы присвоим этой переменной другое значение. Тогда, если мы выведем значение “var”, то получим 62. Таким образом, мы можем присваивать ей любое количество значений времени, когда захотим в нашем коде. Не обязательно, что, инициализировав переменную этим значением, мы не сможем присвоить ей любое другое значение в дальнейшем. Теперь, если мы поставим ключевое слово “const” перед этой переменной, давайте посмотрим, что произойдет?

Мы получим ошибку (присваивание переменной ‘var’, доступной только для чтения). Поскольку мы пытаемся присвоить переменной di

Массив

Строка

Указатель

Exit mobile version