Что такое Си и зачем его изучать
C — это язык среднего уровня. Это означает, что он выше низкоуровневых машиночитаемых языков (язык ассемблера) и выше высокоуровневого, более близкого к письменным языкам (python, ruby и т. Д.).
Если вы планируете работать с компьютерными сетями, проектированием компиляторов, компьютерной архитектурой, операционными системами или встроенными системами, то C — отличное место для начала. Поскольку этот язык ближе к низкоуровневому коду, эти элементы не абстрагируются от языка.
Одна из основных причин написания программ на языке C для вышеуказанных тем связана с быстрым временем выполнения языка C. C не требует дополнительных затрат на обработку и предоставляет программисту возможность отслеживать эти элементы. В этой серии статей будут рассмотрены основы Embedded C, типы данных, управляющие структуры, стандартный ввод/вывод, файловый ввод/вывод, математическая библиотека, решение проблем, функции, массивы, динамическая память и указатели.
Привет, мир
Существует множество компиляторов и редакторов кода, но если вы хотите начать программировать на C без особых усилий, начните здесь.
Теперь, когда ваша установка позволяет начать с простой программы C
C Программы состоят из небольших блоков кода или функций
Следующий пример
#include<stdio.h> // Includes the stdio library into the program so we can use printf int main(void) { printf("Hello World"); return 0; }
Имеет только одну функцию, main, которая запускается после выполнения программы.
Чтобы запустить этот файл
Откройте ваш любимый компилятор и запустите в терминале
g++ filename.c
./a
Комментарии
Комментарии — это строки кода, используемые для документирования, пояснения логики программы или назначения переменных.
Чтобы написать комментарий на языке C, выполните следующие действия.
//Single line comment /* Multi - Line Comment */
Строка и escape-символы
Наборы символов, которые могут содержать текст, буквы, пробелы, специальные символы и цифры.
В C струны помещаются между « ». Используемая выше функция printf принимает строку для вывода на консоль.
Escape Characters: ╔══════════════╦════════════════════╗ ║ Operator ║ Use ║ ╠══════════════╬════════════════════╣ ║ \n ║ New Line ║ ║ \t ║ Horizontal Tab ║ ║ \v ║ Vertical Tab ║ ║ \" ║ Double quote ║ ╚══════════════╩════════════════════╝ #include<stdio.h> #include <stdlib.h> int main(){ char ary[]="Name or Other Info"; printf("%s", ary); return 0; }
Как показано выше, для инициализации строки в C вам нужно будет создать массив символов и либо сразу установить для него значение
char ary[]="Name or Other Info";
Или дайте ему заданную длину
char nameString[10]; //can only hold strings with ten characters char nameString[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // Hello string with null character
чтобы получить строку с ввода с клавиатуры, вы можете сделать следующее
#include<stdio.h> #include <stdlib.h> int main() { char str[50]; printf("-----------------------------------\n"); printf("Input the string : "); fgets(str, sizeof str, stdin); // set string storage location, size of the string, // and the input stream used printf("The string you entered is : %s\n", str); printf("-----------------------------------\n"); }
Строки также могут быть преобразованы в различные типы чисел для определенных числовых входов:
#include<stdio.h> #include<stdlib.h> int main () { const int size = 123; char buffer[size]; char buffer2[size]; char buffer3[size]; unsigned long ul; int in; float flo; printf ("\nInput a unsigned long number: "); fgets(buffer,size,stdin); printf ("\nInput an integer number: "); fgets(buffer2,size,stdin); printf ("\nInput a float number: "); fgets(buffer3,size,stdin); ul = strtoul (buffer,NULL,0); //convert to unsigned long in = atoi(buffer2); //convert to integer flo = atof(buffer3); //convert to float printf ("Output1: %lu\n",ul); printf ("Output2: %i\n",in); printf ("Output3: %f\n\n",flo); return 0; }
Переменные
Переменные можно рассматривать как место, в котором хранится часть данных.
Примитивные типы данных C:
Плавающий тип:
- число с плавающей запятой — 4 байта
- двойной — 8 байт
Десятичные типы
- символ — 8 байт
- интервал — 1 байт
Чтобы определить переменную
char x = 'A'; int y; // no initial value will hold undefined value(garbage) until // initialized float z = 6.43;
Когда мы инициализируем переменную в памяти, происходят следующие шаги:
- Компилятор перейдет в оперативную память и присвоит ячейке имя переменной.
- Затем он будет хранить данные в этом месте
- в зависимости от типа данных переменная будет занимать разное количество места в оперативной памяти
— 1 байт = 1 место, 8 байт = 8 место
Соглашения об именах для C
- Первый символ имени переменной должен содержать букву или символ подчеркивания.
- Пробелы и запятые не допускаются
- Не должно быть зарезервированным словом — используется компилятором
- специальные символы не допускаются (кроме нижнего подчеркивания)
- переменная не может повторяться в одном блоке/области кода
Может содержать следующее
- Нижнее подчеркивание
- Числа: 0–9
- Буквы: аз, аз
Если вам понравилось и вы хотите узнать больше, переходите к Часть II