Полное руководство по основам языка C

Это подробное руководство по основам языка C, включающее примеры программ, которые демонстрируют различные концепции программирования на C.

Назад

Первая программа на C

Каждая программа на C начинается с функции main():


#include <stdio.h>
  
int main() {
    printf("Hello, World!\n");
    return 0;
}
      

Типы данных

Основные типы данных в C:

Арифметические операции

Пример использования арифметических операций в C:


#include <stdio.h>
  
int main() {
    int a = 10, b = 20;
    int sum = a + b;
    int diff = b - a;
    int prod = a * b;
    int div = b / a;
    int mod = b % a;
  
    printf("Sum: %d\n", sum);
    printf("Difference: %d\n", diff);
    printf("Product: %d\n", prod);
    printf("Division: %d\n", div);
    printf("Modulus: %d\n", mod);
  
    return 0;
}
      

Ввод/Вывод

Ввод и вывод данных с использованием scanf и printf:


#include <stdio.h>
  
int main() {
    int num;
    printf("Enter an integer: ");
    scanf("%d", &num);
    printf("You entered: %d\n", num);
  
    return 0;
}
      

Условные операторы

Пример использования оператора if-else:


#include <stdio.h>
  
int main() {
    int num;
    printf("Enter an integer: ");
    scanf("%d", &num);
  
    if (num > 0) {
        printf("The number is positive.\n");
    } else if (num < 0) {
        printf("The number is negative.\n");
    } else {
        printf("The number is zero.\n");
    }
  
    return 0;
}
      

Циклы

Пример цикла while:


#include <stdio.h>
  
int main() {
    int i = 0;
  
    while (i < 5) {
        printf("i = %d\n", i);
        i++;
    }
  
    return 0;
}
      

Пример цикла for:


#include <stdio.h>
  
int main() {
    for (int i = 0; i < 5; i++) {
        printf("i = %d\n", i);
    }
  
    return 0;
}
      

Массивы

Пример работы с массивами:


#include <stdio.h>
  
int main() {
    int arr[5] = {1, 2, 3, 4, 5};
  
    for (int i = 0; i < 5; i++) {
        printf("Element %d: %d\n", i, arr[i]);
    }
  
    return 0;
}
      

Строки

Пример работы со строками в C:


#include <stdio.h>
#include <string.h>
  
int main() {
    char str[100];
  
    printf("Enter a string: ");
    fgets(str, sizeof(str), stdin);
  
    printf("You entered: %s", str);
  
    return 0;
}
      

Функции

Пример создания и использования функции:


#include <stdio.h>
  
int add(int a, int b) {
    return a + b;
}
  
int main() {
    int result = add(10, 20);
    printf("Sum: %d\n", result);
  
    return 0;
}
      

Рекурсия

Пример функции, вычисляющей факториал числа с использованием рекурсии:


#include <stdio.h>
  
int factorial(int n) {
    if (n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}
  
int main() {
    int num = 5;
    printf("Factorial of %d is %d\n", num, factorial(num));
  
    return 0;
}
      

Указатели

Пример работы с указателями:


#include <stdio.h>
  
int main() {
    int a = 10;
    int *p = &a;
  
    printf("Value of a: %d\n", a);
    printf("Address of a: %p\n", &a);
    printf("Pointer p points to: %d\n", *p);
  
    return 0;
}
      

Управление памятью

Пример динамического выделения памяти с использованием malloc и free:


#include <stdio.h>
#include <stdlib.h>
  
int main() {
    int *ptr;
    int n, i;
  
    printf("Enter number of elements: ");
    scanf("%d", &n);
  
    ptr = (int*)malloc(n * sizeof(int));
  
    if (ptr == NULL) {
        printf("Memory not allocated.\n");
        return 1;
    }
  
    printf("Memory successfully allocated.\n");
  
    for (i = 0; i < n; i++) {
        ptr[i] = i + 1;
    }
  
    printf("The elements of the array are: ");
    for (i = 0; i < n; i++) {
        printf("%d ", ptr[i]);
    }
  
    free(ptr);
    printf("\nMemory successfully freed.\n");
  
    return 0;
}
      

Файловый ввод/вывод

Пример работы с файлами в C:


#include <stdio.h>
  
int main() {
    FILE *fptr;
    fptr = fopen("example.txt", "w");
  
    if (fptr == NULL) {
        printf("Error opening file.\n");
        return 1;
    }
  
    fprintf(fptr, "This is a file output example.\n");
    fclose(fptr);
      
    printf("Data written to file successfully.\n");
  
    return 0;
}
      

Структуры

Пример использования структур в C:


#include <stdio.h>
  
struct Person {
    char name[50];
    int age;
};
  
int main() {
    struct Person person1;
  
    printf("Enter name: ");
    fgets(person1.name, sizeof(person1.name), stdin);
    printf("Enter age: ");
    scanf("%d", &person1.age);
  
    printf("Name: %s", person1.name);
    printf("Age: %d\n", person1.age);
  
    return 0;
}
      

Директивы препроцессора

Пример использования директивы #define:


#include <stdio.h>
  
#define PI 3.14159
  
int main() {
    printf("Value of PI: %f\n", PI);
    return 0;
}