
- •Void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;
- •Операции сравнения и логические операции
- •Тип *имя_указателя
- •Цикл while ("пока") с предусловием
- •Цикл do while ("пока") с постусловием
- •Алгоритмизация циклических процессов.
- •16. Передача параметров по значению и по ссылке
Типы данных. Тип данных определяет характеристики объекта: внутреннюю структуру, размер выделяемой памяти, множество значений и доступные операции над ним. Условно типы можно разделить на три категории:
простые или базовые типы;
ссылочные типы, т.е. указатели, ссылки и массивы.
агрегатные типы, т.е. структуры и классы
Следующие типы относятся к базовым:
void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;
int - целочисленный тип. Спецификторы размера short и long уточняют размер: два байта и четыре соответственно. Спецификаторы знака signed и unsigned определяют использовать ли последний бит для знака. Этот тип является типом по умолчанию;
float - тип для вещественных чисел;
double - тип для вещественных чисел двойной точности;
bool - логический тип. Значение 0 означает ложь, ненулевое значение истину;
char - символьный тип. Также этот тип может использоваться как целочисленный тип, к нему применимы спецификаторы знака;
wchar_t - аналогично предыдущему, но для юникод символов;
_int64, long long - тип для 64-битных целых чисел.
Операции языка С++ в порядке убывания приоритета: ()вызов функции, []выделение массива, . обращение к полям и методам через сам объект, -> обращение к полям и методам через ссылку на объект, ! Логическое отрицание, ~ Побитовое отрицание, - изменение знака, ++ инкремент, -- декремент, & взятие адреса (&a), * обращение по адресу (a*), (тип) преобразование типа, sizeof() размер в байтах, * умножение, / деление, % остаток от деления ,+ сложение, - вычитание ,< меньше, > больше, <= меньше равно , >= больше равно, == равно, != не равно, & поразрядное логическое И , ^ поразрядное исключающее ИЛИ, | поразрядное логическое ИЛИ , && логическое И , || логическое ИЛИ, ?: условная операция, = операция присваивания ,, операция запятая, += -= *= /= <<= >>= &= |= ^= Бинарные операции.
Типы данных. Тип данных определяет характеристики объекта: внутреннюю структуру, размер выделяемой памяти, множество значений и доступные операции над ним. Условно типы можно разделить на три категории:
простые или базовые типы;
ссылочные типы, т.е. указатели, ссылки и массивы.
агрегатные типы, т.е. структуры и классы
Следующие типы относятся к базовым:
Void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;
int - целочисленный тип. Спецификторы размера short и long уточняют размер: два байта и четыре соответственно. Спецификаторы знака signed и unsigned определяют использовать ли последний бит для знака. Этот тип является типом по умолчанию;
float - тип для вещественных чисел;
double - тип для вещественных чисел двойной точности;
bool - логический тип. Значение 0 означает ложь, ненулевое значение истину;
char - символьный тип. Также этот тип может использоваться как целочисленный тип, к нему применимы спецификаторы знака;
wchar_t - аналогично предыдущему, но для юникод символов;
_int64, long long - тип для 64-битных целых чисел.
Операции сравнения и логические операции
!(логическое НЕ) <(меньше) <=(меньше либо равно) >(больше) >=(больше либо равно) ==(равно) !=(не равно) &&(логическое И) ||(логическое ИЛИ)
Примечание. Все операции в результате дают значение типа bool.
Операции сравнения и логические операции в результате дают значение типа bool, то есть true или false. Если же такое выражение встречается в контексте, требующем целого значения, true преобразуется в 1, а false – в 0.
Логические операции и выражения сравнения.
В языке отсутствует особый базовый тип данных для представления логических значений "ИСТИНА" и "ЛОЖЬ". Для этой цели используются значения целой переменной. Значение 0 всегда является "ложью". Значение 1 -"истиной". Такие значения дают операции сравнения и логические операции. Вообще, в широком смысле любое ненулевое значение является истинным.
ЛОГИЧЕСКИЕ ОПЕРАЦИИ И (&&) , ИЛИ (||) и НЕ (!) едины для всех языков программирования и соответствуют логическим функциям И, ИЛИ и НЕ для логических (булевых) переменных. Операция И имеет результатом значение "истина" тогда и только тогда, когда оба ее операнда истинны, то есть по отношению к операндам -утверждениям звучит как "одновременно оба". Операция ИЛИ имеет результатом значение "истина", когда хотя бы один из операндов истинен, то есть характеризуется фразой "хотя бы один":
if (a < b && b < c) // если ОДНОВРЕМЕННО ОБА a < b и b < c, то...
if (a==0 || b > 0) // если ХОТЯ БЫ ОДИН a==0 или b > 0, то...
Логические операции И и ИЛИ имеют еще одно свойство. Если в операции И первый операнд имеет значение "ложь", а в операции ИЛИ -"истина", то вычисление выражения прекращается, потому что значение его уже становится известным ("ложь" -для И, "истина" -для ИЛИ). Поэтому возможны выражения, где в первом операнде операции И проверяется корректность некоторой переменной, а во втором -она же используется с учетом этой корректности:
if (a >=0 && sin(sqrt(a)) >0) ...
В данном примере второй операнд, включающий в себя функцию вычисления квадратного корня, не вычисляется, если первый операнд -"ложь".
Особо следует отметить операцию логической инверсии (отрицания) -"!". Значение "истина" она превращает в "ложь" и наоборот. Если считать значением "истина" любое ненулевое значение целой переменной, то эту операцию для целых следует понимать как проверку на 0:
while(!k) {...} // эквивалентно while(k==0) {...}
Так же логические операции: x==y, x<y,x<=y,x>=y.
В языке Си принято следующее правило: истина - это любое ненулевое значение; ложь - это нулевое значение. Выражения, использующие логические операции и операции отношения, возвращают 0 для ложного значения и 1 для истинного.
операции инкремента и декремента (или увеличения и уменьшения). Операторы этих операций выглядят соответственно так: ++ и -- . Что же они делают? При операции увеличения значение операнда увеличивается на 1, а при операции уменьшения - уменьшается на 1. Необычность операторов ++ и -- в том, что их можно использовать и как префиксные (помещая перед переменной: ++n), и как постфиксные (помещая после переменной: n++). В обоих случаях значение n увеличивается на 1, но выражение ++n увеличивает n до того, как его значение будет использовано, а n++ — после того. Предположим, что переменная n содержит число 5, тогда
x = n++;
присвоит x значение 5, а
x = ++n;
присвоит x значение 6. И в том и в другом случае n станет равным 6. Операторы инкремента и декремента можно применять только к переменным. Выражения вроде (i + j)++ недопустимы.
Указатель – это переменная, содержащая адрес другой переменной. Типичная компьютерная система содержит массив последовательно пронумерованных (адресуемых) ячеек памяти, с которыми можно работать по отдельности либо целыми непрерывными группами. Указатель представляет собой группу ячеек памяти, которые содержат адрес какой-либо переменной. Синтаксис объявления указателя на переменную: