Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры программирование.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
257.54 Кб
Скачать

Void - пустой тип, используется для создания указателей и указания того, что функция не возвращает значений;

int - целочисленный тип. Спецификторы размера short и long уточняют размер: два байта и четыре соответственно. Спецификаторы знака signed и unsigned определяют использовать ли последний бит для знака. Этот тип является типом по умолчанию;

float - тип для вещественных чисел;

double - тип для вещественных чисел двойной точности;

bool - логический тип. Значение 0 означает ложь, ненулевое значение истину;

char - символьный тип. Также этот тип может использоваться как целочисленный тип, к нему применимы спецификаторы знака;

wchar_t - аналогично предыдущему, но для юникод символов;

_int64, long long - тип для 64-битных целых чисел.

  1. Выражения сравнения и логические операции.

В языке отсутствует особый базовый тип данных для представления логических значений "ИСТИНА" и "ЛОЖЬ". Для этой цели используются значения целой переменной. Значение 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 для истинного.