Переменные и типы данных в С++

Содержание

Слайд 2

Как и во многих языках программирования, в C++ для хранения данных используются переменные.

Как и во многих языках программирования, в C++ для хранения данных используются
Переменная имеет тип, имя и значение. Тип определяет, какую информацию может хранить переменная.

Слайд 3

Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать

Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно
для осуществления доступа к данным и изменять значение в ходе выполнения программы.

Слайд 4

Перед использованием любую переменную надо определить. Синтаксис определения переменной выглядит следующим образом:

<тип

Перед использованием любую переменную надо определить. Синтаксис определения переменной выглядит следующим образом: ;
переменой> <один или несколько идентификаторов переменных через запятую>;

Слайд 5

Пример объявления переменных

int a; // объявление переменной a целого типа.
float b;

Пример объявления переменных int a; // объявление переменной a целого типа. float
// объявление переменной b типа данных с плавающей запятой.
double c = 14.2; // инициализация переменной типа double.
char d = 's'; // инициализация переменной типа char.
bool k = true; // инициализация логической переменной k.

Слайд 6

В языке C++ есть две похожие концепции, которые новички часто путают: присваивание

В языке C++ есть две похожие концепции, которые новички часто путают: присваивание и инициализация.
и инициализация.

Слайд 7

int a; // это объявление переменной
a = 8; // а это присваивание

int a; // это объявление переменной a = 8; // а это
переменной a значения 8

Слайд 8

int a = 8; // инициализируем переменную a значением 8

int a = 8; // инициализируем переменную a значением 8

Слайд 9

Правило: Если у вас изначально имеется значение для переменной, то используйте инициализацию,

Правило: Если у вас изначально имеется значение для переменной, то используйте инициализацию, вместо присваивания.
вместо присваивания.

Слайд 10

В отличие от других языков программирования, языки Cи и C++ не инициализируют

В отличие от других языков программирования, языки Cи и C++ не инициализируют
переменные определенными значениями (например, нулем) по умолчанию. Поэтому, при создании переменной, ей присваивается ячейка в памяти, в которой уже может находиться какой-нибудь мусор! Переменная без значения (со стороны программиста или пользователя) называется неинициализированной переменной.
Использование неинициализированных переменных может привести к ошибкам

Слайд 11

Важные моменты:

Переменная должна бывать объявлена до обращения к себе, буквально находиться выше по коду. Иначе

Важные моменты: Переменная должна бывать объявлена до обращения к себе, буквально находиться
вы получите ошибку “переменная не объявлена” – Not declared in this scope
Глобальные переменные при объявлении имеют значение 0 по умолчанию (если не инициализировать)
Локальные переменные (создаваемые внутри функций в процессе работы программы) при объявлении могут иметь случайное значение, т.к. выделяются из динамической памяти. Крайне рекомендуется их инициализировать, если в дальнейшем коде они используются как нулевое значение (пример ниже)

Слайд 12

Типы данных

Типы данных

Слайд 13

Константы

Если значение переменной не будет изменяться в процессе выполнения программы – рекомендуется

Константы Если значение переменной не будет изменяться в процессе выполнения программы –
объявить её как константу, это позволит компилятору лучше оптимизировать код и в большинстве случаев он будет чуточку легче и

Слайд 14

Задать константы можно:

Точно так же как переменную, указав перед типом данных слово const.
const

Задать константы можно: Точно так же как переменную, указав перед типом данных
byte myConst = 10; // объявить константу типа byte

Слайд 15

Задать константы можно:

При помощи директивы препроцессору #define, которая делает следующее: на этапе компиляции

Задать константы можно: При помощи директивы препроцессору #define, которая делает следующее: на
кода препроцессор заменяет указанные все последовательности символов в текущем документе (напомню, что вкладки Arduino IDE являются одним документом) на соответствующие им значения. Константа, определённая при помощи #define не занимает места в оперативной памяти, а хранится как код программы во Flash памяти, это самый большой плюс данного способа. Синтаксис: #define имя значение
Точка запятой не ставится. Таким способом обычно указывают пины подключения, настройки, различные величины и всё такое. Пример:
#define BTN_PIN 10
#define DEFAULT_VALUE 3423

Слайд 16

Область видимости

Переменные, константы и другие типы данных (структуры и перечисления) имеют такое

Область видимости Переменные, константы и другие типы данных (структуры и перечисления) имеют
важное понятие, как область видимости. Она бывает
Глобальной
Локальной
Формальной (параметр)

Слайд 17

Глобальная переменная объявляется вне функций и доступна для чтения и записи в любом месте

Глобальная переменная объявляется вне функций и доступна для чтения и записи в
программы, в любой её функции.

byte var;
void setup() {
// спокойно меняем глобальную переменную
var = 50;
}
void loop() {
// спокойно меняем глобальную переменную
var = 70;
}

Слайд 18

Локальная переменная живёт внутри функции или внутри любого блока кода, заключённого в { фигурные скобки

Локальная переменная живёт внутри функции или внутри любого блока кода, заключённого в
}, доступна для чтения и записи только внутри него. При попытке обратиться к локальной переменной из другой функции (за пределами её { блока } ) вы получите ошибку, потому что локальная переменная создаётся заново при выполнении содержащего её блока кода (или функции) и удаляется из памяти при завершении выполнения этого блока (или функции).