Язык Си - руководство для начинающих
Шрифт:
Пример:
rabbits *= 1.6; то же самое, что rabbits = rabbits * 1.6;
III. Операции отношения
Каждая из этих операций сравнивает значение слева со значением справа. Оператор отношения, состоящий из операции и двух ее операндов, имеет значение 1, если выражение истинно, и значение 0, если выражение ложно.
< | меньше |
<= | меньше или равно |
== | равно |
>= | больше или равно |
> | больше |
!= | не
|
IV. Логические операции
Обычно логические операции "считают" условные выражения операндами. Операция ! имеет один операнд, расположенный справа. Остальные операции имеют два операнда: один слева и один справа.
&& | Логическое И: результат операции имеет значение "истина", если оба операнда истинны, и "ложь" в противном случае. |
|| | Логическое ИЛИ: результат операции имеет значение "истина", если один или оба операнда истинны, и "ложь" в противном случае. |
! | Логическое НЕ: результат имеет значение "истина", если операнд имеет значение "ложь", и наоборот. |
V. Операции над указателями
& | Операция получения адреса: выдаст адрес переменной, имя которой стоит за обозначением операции: &nurse является адресом переменной nurse |
* | Косвенная адресация: выдает значение, записанное по адресу, на который ссылается указатель: |
nurse = 22;
ptr = &nurse; /* указатель на nurse */
val = *ptr
В результате работы этих операторов переменной val присваивается значение 22.
VI. Операции над структурами и объединениями
. | Операция принадлежности (точка) используется совместно с именем структуры (или объединения) для задания элемента этой структуры (иди объединения). Если name является именем структуры, а member– элементом, указанным в структурном шаблоне, то name.member определяет этот элемент структуры. Операцию принадлежности можно аналогичным образом применять и к объединениям. |
Пример:
struct {
int code;
float cost;
} item;
item.code = 1265;
Выполняется присваивание значения элементу code структуры item.
– > | Косвенная адресация (определение принадлежности) элемента используется совместно с указателем на структуру (или объединение) для идентификации того или иного элемента этих структур (или объединения). Предположим, что ptrstr является указателем на структуру, a member– элементом, указанным в структурном шаблоне. Тогда ptrstr -> member определяет, что это элемент структуры, на которую ссылается указатель. Операцию косвенной адресации элемента можно применять аналогичным образом и к объединениям. |
Пример:
struct {
int code;
float cost;
} item, *ptrst;
ptrst = &item;
ptrst-> code = 3451;
Эти операторы присваивают значение элементу code структуры item. Следующие три выражения эквивалентны:
ptrst -> code
item.code
(*ptrst).code
VII.
Дополнительные операцииsizeof | Выдает размер (в байтах) операнда, стоящего справа. Операндом может быть обозначение типа, заключенное в скобки, как, например, в sizeof(float), либо имя конкретной переменной или определенного массива и т. д., как, например, в sizeof foo. |
(type) | Операция приведения типа: превращает следующее за ней значение в тип, определенный ключевым словом (или словами), заключенным в скобки. Например, (float)9 превращает целое 9 в число с плавающей точкой 9.0. Операция "запятая" связывает два выражения в одно и гарантирует, что левое выражение будет вычислено первым. Типичным примером использования является включение дополнительной информации в управляющее выражение цикла for:for(step = 2, fargo = 0; fargo < 1000; step *= 2) fargo + = step; |
?: | Операция условия имеет три операнда, каждый из которых является выражением. Они расположены следующим образом:выражение1 ? выражение2 : выражение3. Значение всего выражения равно значению выражения2, если выражение1 истинно, и значению выражения3 в противном случае. |
Примеры:
(5 > 3) ? 1 : 2 имеет значение 1
(3 > 5) ? 1 : 2 имеет значение 2
(a > b) ? а : b имеет значение большего а и b
ПРИЛОЖЕНИЕ Г. ТИПЫ ДАННЫХ И КЛАССЫ ПАМЯТИ
Основные типы данных
Ключевые слова: Основные типы данных определяются с помощью следующих семи ключевых слов: int, long, short, unsigned, char, float, double
Целые со знаком: Могут иметь положительные и отрицательные значения.
int: основной тип целых чисел для конкретной системы.
long или long int: могут иметь целое как минимум такого же размера, как самое большое int и, возможно, больше.
short или short int: самое большое целое типа short не больше самого большого int, а возможно, и меньше. Обычно long должно быть больше short, a int должно быть таким же, как одно из них. Например, версия языка Си Lattice С для компьютера IBM PC имеет 16-разрядные целые типа short и int и 32-разрядные long. Все это зависит от используемой системы.
Целые без знака: имеют только нулевые и положительные значения. Они не могут быть больше самого большого возможного положительного числа.
Ключевое слово: unsigned используется перед обозначением типа: unsigned int, unsigned long, unsigned short.
Отдельно стоящее unsigned обозначает то же самое, что и unsigned int.
Символы: это типографские знаки, такие, как А, & и +.
Обычно каждый из них занимает в памяти только один байт.
char: ключевое слово для этого типа.
Числа с плавающей точкой: они могут иметь положительные и отрицательные значения.
float: основной (для используемой системы) размер чисел с плавающей точкой.
double или long float: больший (возможно) элемент для размещения чисел с плавающей точкой. С его помощью в принципе можно использовать больше значащих цифр и, возможно, больший порядок.