ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Модификатор unsignedТипы int, short и long представляют целые числа со знаком. Для типа char стандарт Си не устанавливает явно наличие знака, однако большинство компиляторов трактуют элементы типа char как целые числа со знаком в диапазоне от -128 до 127. Если необходимо трактовать целые числа как неотрицательные, или беззнаковые, следует добавить модификатор unsigned при описании переменных. Примеры: unsigned char c = 255;unsigned short s = 65535;unsigned int i = 1000000000;unsigned j = 1;При описании типа " unsigned int " слово " int " можно опускать, что и сделано в последнем примере. Следует по возможности избегать беззнаковых типов, поскольку арифметика беззнаковых чисел не на всех компьютерах реализована одинаково и из-за этого при переносе программы с одной платформы на другую могут возникнуть проблемы. По этой причине в языке Java беззнаковые числа запрещены. Имеется также модификатор signed (знаковый). Его имеет смысл использовать на тех платформах, в которых тип char является беззнаковым. Пример описания: signed char d = (-1);Вещественные типы Вещественных типов два: длинное вещественное число double (переводится как "двойная точность") и короткое вещественное число float (переводится как "плавающее"). Вещественные типы были подробно рассмотрены в разделе 1.4.2. Вещественное число типа double занимает 8 байтов, типа float - 4 байта. Тип double является основным для компьютера. Тип float - это, скорее, атавизм, оставшийся от ранних версий языка Си. Компьютер умеет производить арифметические действия только с элементами типа double, элементы типа float приходится сначала преобразовывать к double. Точность, которую обеспечивает тип float, низка и не достаточна для большинства практических задач. Все стандартные функции математической библиотеки работают только с типом double. Рекомендуем вам никогда не использовать тип float! Примеры описаний вещественных переменных: double x, y, z;double a = 1.5, b = 1e+6, c = 1.5e-3;В последних двух случаях использовалось задание вещественных констант в экспоненциальной форме (см. раздел 1.4.2). Логический тип В языке Си специального логического типа нет, вместо него используются переменные целого типа. Значению "истина" соответствует любое ненулевое целое число, значению "ложь" - ноль. Например, в Си допустим такой фрагмент программы: Здесь целочисленная переменная b используется в качестве условного выражения в операторе if ("если"). Если значение b отлично от нуля, то выполняется тело оператора if, т.е. переменной s присваивается значение 1.0; если значение b равно нулю, то тело оператора if не выполняется. На самом деле, приведенный пример представляет собой дурной стиль программирования. Гораздо яснее выглядит следующий фрагмент, эквивалентный приведенному выше: if (b!= 0) { s = 1.0;}В более строгом языке Java второй фрагмент корректен, а первый нет. Язык C++ вводит логический тип bool в явном виде (отметим, что этот тип появился в C++ далеко не сразу!). Переменные типа bool принимают два значения:false и true (ложь и истина). Слова false и true являются ключевыми словами языка C++. Примеры описания логических переменных в C++: bool a, b;bool c = false, d = true;Операции. Операции. По количеству операндов, участвующих в операции, операции подразделяются на унарные, бинарные и тернарные. В языке Си имеются следующие унарные операции: - арифметическое отрицание (отрицание и дополнение); ~ побитовое логическое отрицание (дополнение); ! логическое отрицание; * разадресация (косвенная адресация); & вычисление адреса; + унарный плюс; ++ увеличение (инкремент); -- уменьшение (декремент); sizeof размер. Унарные операции выполняются справа налево. Операции увеличения и уменьшения увеличивают или уменьшают значение операнда на единицу и могут быть записаны как справа так и слева от операнда. Если знак операции записан перед операндом (префиксная форма), то изменение операнда происходит до его использования в выражении. Если знак операции записан после операнда (постфиксная форма), то операнд вначале используется в выражении, а затем происходит его изменение. В отличие от унарных, бинарные операции, список которых приведен в табл.7, выполняются слева направо. Таблица 7
Левый операнд операции присваивания должен быть выражением, ссылающимся на область памяти (но не объектом объявленным с ключевым словом const), такие выражения называются леводопустимыми к ним относятся: - идентификаторы данных целого и плавающего типов, типов указателя, структуры, объединения; - индексные выражения, исключая выражения имеющие тип массива или функции; - выражения выбора элемента (->) и (.), если выбранный элемент является леводопустимым; - выражения унарной операции разадресации (*), за исключением выражений, ссылающихся на массив или функцию; - выражение приведения типа если результирующий тип не превышает размера первоначального типа. При записи выражений следует помнить, что символы (*), (&), (!), (+) могут\ обозначать унарную или бинарную операцию. Не нашли, что искали? Воспользуйтесь поиском:
|