Выбрать главу

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: больший (возможно) элемент для размещения чисел с плавающей точкой. С его помощью в принципе можно использовать больше значащих цифр и, возможно, больший порядок.

Как описать простую переменную:

     1. Выберите необходимый тип.