Используешь Telegram? Подпишись на канал автора →
открыть или

Урок №30. Размер типов данных

В этом уроке мы рассмотрим, как определять размер различных типов данных в C++. Оператор sizeof Оператор sizeof используется для определения размера типа данных или переменной в байтах. Синтаксис: sizeof(тип) sizeof переменная Пример использования sizeof: #include <iostream> int main() { std::cout << "bool:\t\t" << sizeof(bool) << " bytes\n"; std::cout << "char:\t\t" << sizeof(char) << " bytes\n"; std::cout << "wchar_t:\t" << sizeof(wchar_t) << " bytes\n"; std::cout << "char16_t:\t" << sizeof(char16_t) << " bytes\n"; std::cout << "char32_t:\t" << sizeof(char32_t) << " bytes\n"; std::cout << "short:\t\t" << sizeof(short) << " bytes\n"; std::cout << "int:\t\t" << sizeof(int) << " bytes\n"; std::cout << "long:\t\t" << sizeof(long) << " bytes\n"; std::cout << "long long:\t" << sizeof(long long) << " bytes\n"; std::cout << "float:\t\t" << sizeof(float) << " bytes\n"; std::cout << "double:\t\t" << sizeof(double) << " bytes\n"; std::cout << "long double:\t" << sizeof(long double) << " bytes\n"; return 0; } Примечание: Размеры типов данных могут отличаться в зависимости от компилятора и архитектуры компьютера.
2 minutes to read

Урок №29. Тип данных void в C++

  1. Функции, не возвращающие значение Если функция не должна возвращать значение, используется тип void: void printHello() { std::cout << "Hello world!"; } 2. Функции без параметров Хотя это и необязательно в C++, иногда void используется для обозначения функции без параметров: int getValue(void) { return 5; } 3. Указатели на void Указатель типа void* может указывать на объект любого типа данных: int nValue = 5; float fValue = 7.5; void *ptr; ptr = &nValue // Указатель на int ptr = &fValue // Указатель на float Важно помнить, что перед использованием такого указателя его нужно привести к конкретному типу.
One minute to read

Урок №28. Инициализация, присваивание и объявление переменных в C++

В этом уроке мы подробнее рассмотрим, как правильно создавать и использовать переменные различных типов данных в C++. Объявление и инициализация переменных разных типов 1. Целочисленные типы (int, short, long, long long) int a = 10; short b{5}; long c = 1000000L; long long d = 1000000000LL; Здесь мы объявляем и инициализируем переменные различных целочисленных типов. Обратите внимание на суффиксы ‘L’ и ‘LL’ для long и long long соответственно. 2. Типы с плавающей точкой (float, double) float f = 3.
2 minutes to read

Уроки №1-27 Задачи и вопросы

Вопросы Что выведет следующая программа? #include int main() { std::cout << "Hello"; return 0; } a) Ничего не выведет b) Hello c) 0 d) Программа не скомпилируется Какая из следующих конструкций является правильным объявлением функции main()? a) void main() b) int main() c) main() d) int main(void) Что делает оператор #include? a) Создает новый файл b) Компилирует программу c) Подключает заголовочный файл d) Вызывает функцию из библиотеки Какой оператор используется для вывода данных в консоль в C++?
4 minutes to read

Урок №27. Отладка программ - стек вызовов и отслеживание переменных

В этом уроке мы продолжим изучение отладки программ и рассмотрим такие важные инструменты, как стек вызовов и отслеживание переменных. Стек вызовов Стек вызовов - это структура данных, которая хранит информацию о активных функциях в программе. Когда функция вызывается, информация о ней добавляется в стек. Когда функция завершается, эта информация удаляется из стека. Рассмотрим пример: #include <iostream> void funcC() { std::cout << "В функции C\n"; } void funcB() { std::cout << "Вызываем функцию C\n"; funcC(); } void funcA() { std::cout << "Вызываем функцию B\n"; funcB(); } int main() { std::cout << "Вызываем функцию A\n"; funcA(); return 0; } При отладке этой программы, когда выполнение достигнет функции funcC(), стек вызовов будет выглядеть примерно так:
2 minutes to read

Урок №26. Отладка программ - степпинг и точки останова

Отладка программ - это процесс поиска и устранения ошибок в коде. В этом уроке мы рассмотрим два важных инструмента отладки: степпинг и точки останова. Степпинг (пошаговое выполнение) Степпинг позволяет выполнять программу по одной инструкции за раз. Это помогает отследить выполнение программы и найти место, где происходит ошибка. Основные команды степпинга: Step Into (F11) - выполнить следующую инструкцию, заходя внутрь функций Step Over (F10) - выполнить следующую инструкцию, не заходя внутрь функций Step Out (Shift+F11) - выполнять до выхода из текущей функции Точки останова (breakpoints) Точка останова - это место в коде, где выполнение программы будет приостановлено.
3 minutes to read

Урок №25. Разработка ваших первых программ

В этом уроке мы рассмотрим несколько простых программ на C++, которые помогут вам закрепить полученные знания и начать писать собственный код. Программа 1: Приветствие пользователя Псевдокод: 1. Объявить переменную для хранения имени 2. Вывести приглашение для ввода имени 3. Получить имя от пользователя 4. Вывести приветствие с введенным именем 5. Завершить программу Код C++: #include <iostream> #include <string> int main() { std::string name; std::cout << "Введите ваше имя: "; std::cin >> name; std::cout << "Привет, " << name << "!
4 minutes to read

Конфликт имен и std namespace в C++

В этом уроке мы рассмотрим важную тему - конфликт имен в C++ и использование пространства имен std. Что такое конфликт имен? Конфликт имен возникает, когда в программе используются одинаковые имена для разных сущностей. Например: int x = 5; // глобальная переменная x int main() { int x = 10; // локальная переменная x cout << x; // какую x мы выводим? return 0; } В этом случае возникает неоднозначность - какую переменную x мы имеем в виду при выводе?
One minute to read

Урок №23. Header guards и

При работе с заголовочными файлами в C++ важно избегать проблем, связанных с многократным включением одного и того же файла. Для этого используются механизмы защиты заголовочных файлов: header guards и директива #pragma once. Header guards Header guards — это традиционный способ защиты от многократного включения, использующий директивы препроцессора: #ifndef SOME_UNIQUE_NAME_HERE #define SOME_UNIQUE_NAME_HERE // Содержимое заголовочного файла #endif Пример использования в файле math.h: #ifndef MATH_H #define MATH_H int add(int x, int y); int subtract(int x, int y); #endif #pragma once #pragma once — это нестандартная, но широко поддерживаемая директива, которая указывает компилятору включать файл только один раз:
2 minutes to read

Урок №22. Директивы препроцессора

Препроцессор — это компонент языка C++, который выполняет предварительную обработку исходного кода перед его компиляцией. Он обрабатывает директивы препроцессора, которые начинаются с символа #. Основные директивы препроцессора: #include Используется для включения содержимого другого файла в текущий файл. #include <iostream> #include "myheader.h" #define Используется для определения макросов или символических констант. #define PI 3.14159 #define MAX(a,b) ((a) > (b) ? (a) : (b)) #ifdef, #ifndef, #endif Используются для условной компиляции кода. #ifdef DEBUG std::cout << "Debug mode is on" << std::endl; #endif #ifndef MY_HEADER #define MY_HEADER // содержимое заголовочного файла #endif #if, #elif, #else Позволяют выполнять более сложные условные проверки.
One minute to read