Базовые концепции

Глава 2. Основы языка #

2.1 Базовые концепции #

1. Структура программы #

Типичная программа на C++ состоит из нескольких ключевых элементов:

// Препроцессорные директивы
#include <iostream>  // Подключение библиотек

// Пространство имен (необязательно)
using namespace std;

// Объявление функций (при необходимости)
void myFunction();

// Главная функция - точка входа в программу
int main() {
    // Основной код программы
    cout << "Hello, World!" << endl;

    // Возврат значения (обычно 0 означает успешное выполнение)
    return 0;
}

// Определение дополнительных функций (при необходимости)
void myFunction() {
    // Тело функции
}

Ключевые элементы структуры: #

  • Препроцессорные директивы: команды, выполняющиеся до компиляции
  • Пространства имен: механизм группировки кода
  • Функция main(): обязательная точка входа в программу
  • Фигурные скобки {}: определяют блоки кода
  • Точка с запятой ;: завершение инструкций

2. Типы данных #

Целочисленные типы #

ТипРазмерДиапазон значений
short2 байта-32 768 до 32 767
int4 байта-2 147 483 648 до 2 147 483 647
long4 байта-2 147 483 648 до 2 147 483 647
long long8 байтОчень большой диапазон

Беззнаковые целочисленные типы #

ТипРазмерДиапазон значений
unsigned short2 байта0 до 65 535
unsigned int4 байта0 до 4 294 967 295
unsigned long4 байта0 до 4 294 967 295

Типы с плавающей точкой #

ТипРазмерТочность
float4 байта6-7 знаков
double8 байт15-16 знаков
long double16 байт18-19 знаков

Символьные типы #

ТипОписаниеРазмер
charОдин символ1 байт
wchar_tРасширенный символ2-4 байта

Логический тип #

ТипЗначенияРазмер
booltrue или false1 байт

Пример использования типов #

#include <iostream>
using namespace std;

int main() {
    // Целочисленные типы
    int age = 30;
    unsigned long population = 7800000000;

    // Типы с плавающей точкой
    float temperature = 36.6f;
    double precise_value = 3.14159265358979;

    // Символьные типы
    char grade = 'A';
    wchar_t unicode_symbol = L'Я';

    // Логический тип
    bool is_student = true;

    return 0;
}

3. Переменные и константы #

Объявление переменных #

// Статическая типизация
int count = 10;
double price = 99.99;
char symbol = 'X';

// Автоматический вывод типа (C++11)
auto value = 42;  // компилятор определит int
auto text = "Hello";  // компилятор определит const char*

Константы #

// Константы с использованием ключевых слов
const int MAX_USERS = 100;
constexpr double PI = 3.14159;

// Определение через #define (устаревший способ)
#define MAX_BUFFER 1024

4. Область видимости переменных #

#include <iostream>
using namespace std;

int globalVariable = 10;  // Глобальная переменная

void exampleFunction() {
    // Локальная переменная
    int localVariable = 20;
    
    // Можно использовать глобальную переменную
    cout << "Global: " << globalVariable << endl;
}

int main() {
    // Блочная область видимости
    {
        int blockVariable = 30;
        cout << blockVariable << endl;
    }
    // blockVariable здесь недоступна

    return 0;
}

Типы областей видимости: #

  • Глобальная: доступна во всей программе
  • Локальная: доступна только внутри функции
  • Блочная: доступна только внутри блока {}

5. Литералы #

// Целочисленные литералы
int decimal = 42;        // Десятичная система
int octal = 052;         // Восьмеричная система (начинается с 0)
int hexadecimal = 0x2A;  // Шестнадцатеричная система

// Литералы с плавающей точкой
double pi = 3.14;
float small = 0.1f;
double scientific = 6.022e23;

// Символьные литералы
char letter = 'A';
char escape = '\n';  // Экранированный символ

// Строковые литералы
const char* message = "Hello, World!";
const char* multiline = "Строка \
может быть длинной";

// Логические литералы
bool flag = true;
bool another_flag = false;

Заключение #

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