- •Этапы создания исполняемой программы
- •Идентификаторы
- •Ключевые слова
- •Комментарии
- •Структура программы
- •Вывод данных
- •Ввод данных
- •Вопросы для самоконтроля
- •Тема 1.1(2). Типы данных. Константы и переменные
- •Основные (стандартные) типы данных
- •Область действия переменных
- •1.3.1. Математические операции
- •1.3.2. Простое присваивание
- •1.3.3. Составное (сложное) присваивание
- •1.3.4. Операция приведения (преобразования) типов
- •1.3.5. Операции отношения
- •1.3.7. Операция sizeof
- •1.3.8. Операция "запятая" (,)
- •1.3.9. Условная операция (?:)
- •1.3.10. Указатель. Определение адреса переменной
- •1.3.11. Директива define
- •1.3.12. Директива include
- •1.3.13. Примеры программ
- •1.3.14. Вопросы для самоконтроля
- •Тема 1.3. Программирование алгоритмов различной структуры
- •Базовые конструкции структурного программирования
- •Операторы ветвления
- •1.4.1. Условный оператор if
- •If (условие) оператор_1; else оператор_2;
- •If (условие) оператор_1;
- •1.4.2. Оператор выбора switch
- •Операторы цикла
- •1.4.3. Оператор while
- •1.4.4. Оператор do...While
- •1.4.5. Оператор for
- •1.4.6. Функция exit(), операторы break, continue, return
- •Стандартные математические функции
- •Тема 1.4. Ввод-вывод данных
- •Функции get() и put()
- •Функция getch()
- •Функция printf
- •Функция sprintf()
- •Тема 1.5. Функции. Локальные и глобальные переменные. Способы передачи данных.
- •1.5.1. Видимость переменных
- •1.5.2. Определение функции
- •1.5.3. Функция main
- •1.5.4. Вызов функции
- •1.5.5. Способы передачи данных
- •1.5.6. Возвращаемые значения функции
- •1.5.7. Использование прототипов функций
- •Тема 1.6(1). Массивы и указатели
- •Объявление массива
- •Доступ к элементам массива
- •Многомерные массивы
- •Указатели
- •Тема 1.6(2). Структуры и строки
- •1.6.1. Структуры
- •1 Способ – по шаблону.
- •2 Способ – при объявлении (описании) шаблона.
- •1.6.2. Способы реализации строк
- •1.6.3. Строковые константы
- •1.6.4. Указатель на символьную строку
- •1.6.5. Массив символов
- •1.6.6. Некоторые функции для работы со строками
- •1.6.7. Некоторые функции проверки и преобразования символов
- •Тема 1.7. Работа с памятью
- •Функция malloc
- •Функция free
- •Операция new
- •Операция delete
- •Тема 1.10. Динамические структуры
- •Разновидности динамических структур
- •Примеры программ (фрагментов программ) для работы с динамическими структурами
1.3.7. Операция sizeof
Имеет формат:
sizeof выражение
или
sizeof (тип данных)
Операция sizeof возвращает размер в байтах указанного в ней выражения или типа данных.
Пример:
float x=1;
cout <<"\nРазмер типа float в байтах=\t" << sizeof (float)
cout <<"\nРазмер переменной Х в байтах=\t" << sizeof x
Результат:
Размер типа float в байтах= 4
Размер переменной Х в байтах= 4
1.3.8. Операция "запятая" (,)
Дополнительная операция (,) не работает непосредственно с данными, а приводит к вычислению выражения слева направо. Эта операция позволяет использовать в одной строке несколько выражений, разделенных запятой.
Пример 1:
main()
{
int i = 10, j = 25;
}
Результатом выполнения является инициализация двух целочисленных переменных: переменная i получает значение 10, а затем переменная j получат значение 20.
Пример 2:
i = 10;
j=(i=12,i+8);
Результат выполнения: j=20. Сначала i получает значение 10, затем использование операции "запятая" приведет к тому, что i получит значение 12, а затем значение i+8, т.е. 12+8=20. Результат будет присвоен j.
1.3.9. Условная операция (?:)
Эта операция тернарная, то есть имеет три операнда.
Формат:
(условие) ? (выражение1) : (выражение2)
Если условие истинно, то выполняется выражение1, а если ложно, то выражение2.
Пример:
(а>b)?(ans =10):(ans=25);
или
ans=(a>b)?(10):(25);
Если а>b, то переменная ans получается значение 10, иначе - значение 0.25
1.3.10. Указатель. Определение адреса переменной
С++ позволяет напрямую работать с памятью. С любой переменной можно работать, указывая ее имя или адрес. Адреса переменных называются указателями, при описании указатель обозначается *.
Операция
*указатель
позволяет получить доступ к данным, которые хранятся по адресу указатель.
Пример:
int * k; // k - указатель на переменную целого типа
Перед использованием указателя его необходимо описать в программе.
Пример:
int *c; // с - указатель на переменную типа int
float *d; // d - указатель на переменную типа float
Можно получить адрес, по которому переменная располагается в памяти.
Операция
& переменная
определяет адрес переменной по ее имени, а также позволяет обратиться к памяти по значению указателя.
Приоритеты операций языка программирования С++
Таблица 1. Таблица приоритетов операций С++
Уровень приоритета |
Символы |
Описание |
|
1 |
++ |
Префиксный инкремент |
Слева направо |
-- |
Префиксный декремент |
||
() |
Вызов функции и подвыражение |
||
[] |
Выделение элемента массива |
||
-> |
Указатель структуры |
||
. |
Член структуры |
||
2 |
! |
Логическое отрицание |
Справа налево |
~ |
Поразрядное логическое НЕ (дополнение до 1) |
||
- |
Унарный минус (изменение знака) |
||
+ |
Унарный плюс |
||
(type) |
Преобразование к типу |
||
* |
Обращение к памяти по значению указателя |
||
& |
Определение адреса переменной |
||
sizeof |
Определение размера в байтах |
||
3 |
* |
Умножение |
Слева направо |
/ |
Деление |
||
% |
Остаток от деления |
||
4 |
+ |
Сложение |
Слева направо |
- |
Вычитание |
||
5 |
<< |
Поразрядный сдвиг влево |
Слева направо |
>> |
Поразрядный сдвиг вправо |
||
6 |
< |
Меньше |
Слева направо |
<= |
Меньше или равно |
||
> |
Больше |
||
>= |
Больше или равно |
||
7 |
== |
Равно |
Слева направо |
!= |
Не равно |
||
8 |
& |
Поразрядное логическое И |
Слева направо |
9 |
^ |
Поразрядное исключающее ИЛИ (XOR) |
Слева направо |
10 |
| |
Поразрядное логическое ИЛИ |
Слева направо |
11 |
&& |
Логическое И |
Слева направо |
12 |
|| |
Логическое ИЛИ |
Слева направо |
13 |
?: |
Операция условия |
Слева направо |
14 |
= |
Присваивание |
Слева направо |
+= |
Составное сложение |
||
-= |
Составное вычитание |
||
*= |
Составное умножение |
||
/= |
Составное деление |
||
%= |
Составное определение остатка от деления |
||
<<= |
Составной поразрядный сдвиг влево |
||
>>= |
Составной поразрядный сдвиг вправо |
||
&= |
Составное поразрядное логическое И |
||
^= |
Составное поразрядное исключающее ИЛИ |
||
|= |
Составное поразрядное логическое ИЛИ |
||
15 |
, |
Операция "запятая" |
Слева направо |
++ |
Постфиксный инкремент |
||
-- |
Постфиксный декремент |
Директивы препроцессора С++