Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samples / Zaochniki / СистемноеПрогр.doc
Скачиваний:
23
Добавлен:
25.03.2015
Размер:
91.14 Кб
Скачать
  1. Структуры данных в языке программирования Си.

Cтруктуры - это составной объект, в который входят элементы любых типов, за исключением функций. В отличие от массива, который является однородным объектом, структура может быть неоднородной.

Тип структуры определяется записью вида:

struct { список определений }

В структуре обязательно должен быть указан хотя бы один компонент. Определение структур имеет следующий вид:

тип-данных описатель;

где тип-данных указывает тип структуры для объектов, определяемых в описателях. В простейшей форме описатели представляют собой идентификаторы или массивы.

Пример:

struct { double x,y; } s1, s2, sm[9];

struct { int year;

char moth, day; } date1, date2;

Переменные s1, s2 определяются как структуры, каждая из которых состоит из двух компонент х и у. Переменная sm определяется как массив из девяти структур. Каждая из двух переменных date1, date2 состоит из трех компонентов year, moth, day. Существует и другой способ ассоциирования имени с типом структуры, он основан на использовании тега структуры. Тег структуры аналогичен тегу перечислимого типа. Тег структуры определяется следующим образом:

struct тег { список описаний; };

где тег является идентификатором.

В приведенном ниже примере идентификатор student описывается как тег структуры:

struct student { char name[25];

int id, age;

char prp; };

Тег структуры используется для последующего объявления структур данного вида в форме:

struct тег список-идентификаторов;

Пример:

struct studeut st1,st2;

Доступ к компонентам структуры осуществляется с помощью указания имени структуры и следующего через точку имени выделенного компонента, например:

st1.name="Иванов";

st2.id=st1.id;

st1_node.data=st1.age;

  1. Операции и выражения в языке программирования Си.

Комбинация знаков операций и операндов, результатом которой является определенное значение, называется выражением.

Операнд - это константа, литерал, идентификатор, вызов функции, индексное выражение, выражение выбора элемента или более сложное выражение.

В языке СИ присваивание также является выражением, и значением такого выражения является величина, которая присваивается.

Операции. По количеству операндов, участвующих в операции, операции подразделяются на унарные, бинарные и тернарные.

В языке Си имеются следующие унарные операции:

-

Арифметическое отрицание (отрицание и дополнение);

~

Побитовое логическое отрицание (дополнение);

!

Логическое отрицание;

*

Разадресация (косвен.адрес.);

&

Вычисление адреса;

+

Унарный плюс;

++

Увеличение (инкремент);

--

Уменьшение (декремент);

sizeof

размер.

Унарные операции выполняются справа налево.

В отличие от унарных, бинарные операции, список которых приведен в табл., выполняются слева направо.

Знак

Операция

Группа операций

*

Умножение

Мультипликативные

/

Деление

%

Остаток от деления

+

Сложение

Аддитивные

-

Вычитание

<<

Сдвиг влево

Операции сдвига

>>

Сдвиг вправо

<

Меньше

Операции отношения

<=

Меньше или равно

>=

Больше или равно

==

Равно

!=

Не равно

&

Поразрядное И

Поразрядные операции

|

Поразрядное ИЛИ

^

Поразрядное исключающее ИЛИ

&&

Логическое И

Логические операции

||

Логическое ИЛИ

,

Последовательное вычисление

Последовательного вычисления

=

Присваивание

Опер. присваив-я.

*=

Умножение с присваиванием

/=

Деление с присв.

%=

Остаток от деления с присв.

-=

Вычитание с присв.

+=

Сложение с присв.

<<=

Сдвиг влево с присв.

>>=

Сдвиг вправо с присв.

&=

Поразрядное И с присв.

|=

Поразрядное ИЛИ с присв.

^=

Поразрядн. исключ. ИЛИ с присв.

При записи выражений следует помнить, что символы (*), (&), (!), (+) могут обозначать унарную или бинарную операцию.

Соседние файлы в папке Zaochniki