Что такое Си и зачем его изучать

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