Сделай Сам Свою Работу на 5

Объявления перечислимых типов





Синтаксис:

enum[признак]{список}[декларатор[,декларатор]...]; enum признак[идентификатор[,декларатор]...];

Объявления стpуктуp

Синтаксис:

struct [пpизнак]{список-объявлений-компонент} [деклаpатоp[,деклаpатоp]...]; struct пpизнак[деклаpатоp[,деклаpатоp]...];

"Объявление стpуктуpы" задает имя стpуктуpной пеpеменной и последовательность значений пеpеменной (называемых "компонентами" стpуктуpы), котоpые могут иметь pазличные типы. Пеpеменная этого типа стpуктуpы содеpжит опpеделенные этим типом последовательности.

Объявления об'единений

Синтаксис:

union [признак]{список-объявлений-компонент} [декларатор[,декларатор.]..]; union признак[декларатор[,декларатор]...];

Объявления массивов

Синтаксис: спецификатор-типа декларатор[пост-выражение]; спецификатор-типа декларатор[];

При объявлении массива задается его имя и тип его элементов. Кроме того, можно задать число элементов массива.

Объявления указателей

Синтаксис:

спецификатор-типа *[модифицирующий-спецификатор]декларатор;

При объявлении указателя указывается имя переменной указателя и задается тип объекта, на который эта переменная указывает. Объявленная в качестве указателя переменная хранит адрес памяти.



Объявления функций (Прототипы)

Синтаксис: [спецификатор-класса-хранения] [спецификатор-типа]декларатор ([список-формальных-параметров]) [,список-деклараторов]...;

"Объявление функции", часто называемое "прототипом функции", задает имя и возвращаемый тип функции, и может задавать типы и имена формальных параметров и число аргументов функции. Объявление функции не определяет тела функции. Оно просто сообщает некоторую информацию о функции компилятору. Это позволяет компилятору проверить типы действительных аргументов, задаваемые в вызове функции.

Инициализация

Синтаксис: =инициализатор

Используя инициализатор в объявлении функции можно присвоить переменной начальное значение. Переменной при этом будет присвоено значение инициализатора. Инициализатору предшествует знак равенства (=).

Составные типы

Синтаксис: ={список-инициализаторов}

Инициализаторы в "списке-инициализаторов" отделяются друг от друга запятой. Каждый инициализатор списка это либо постоянное выражение либо список инициализаторов.



Инициализаторы строк

Синтаксис: ="символы"

Выражения и Присвоения

Операторы С

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

- ~ ! отрицание и дополнение * & адресация и получение адреса sizeof размер + унарный плюс

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

* / % мультипликативные + - аддитивные << >> сдвиг < > <= >= == != отношения & | ^ битовые && || логические , последовательные вычисления

В языке С есть только один тернарный оператор условия (? :). Он ассоциируется справа налево.

Побитовая обработка

Операторы языка С побитовой обработки описываются следующим образом:

& Оператор побитового-И сравнивает каждый бит своего первого операнда с соответствующим битом его второго операнда. Если оба бита равны 1, то и результирующий бит устанавливается в 1. В противном случае результирующий бит устанавливается в 0. | Оператор побитового включающего-ИЛИ сравнивает каждый бит своего первого операнда с соответствующим битом его второго операнда. Если хотя бы один бит равен 1, то и результирующий бит устанавливается в 1. В противном случае результирующий бит устанавливается в 0. ^ Оператор побитового исключающего-ИЛИ сравнивает каждый бит своего первого операнда с соответствующим битом его второго операнда. Если один бит равен 1, а второй бит равен 0, то и результирующий бит устанавливается в 1. В противном случае результирующий бит устанавливается в 0.

Логические операторы



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

Результат логической операции 0 или 1. Тип результата int.

Логические операторы языка С описываются следующим образом:

&& Оператор логического-И дает в результате 1, если оба операнда имеют ненулевое значение. Если хотя бы один из операндов равен 0, то результом будет 0. Если первый операнд операции логического-И равен 0, то второй операнд не вычисляется. || Оператор логического-ИЛИ выполняет операцию включающего-ИЛИ над своими операндами. Результатом будет 0, если оба операнда имеют значение 0. Если хотя бы один из операндов имеет ненулевое значение, то результатом будет 1. Если первый операнд операции логического-ИЛИ имеет ненулевое значение, то второй операнд не вычисляется.

Операторы Присвоения

С помощью операторов присвоения языка С можно в одной операции изменять и присваивать значения. использование составного оператора присвоения может сделать программу более эффективной и короткой.

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

++ унарное увеличение -- унарное уменьшение = простое присвоение *= присвоение с умножением /= присвоение с делением %= присвоение остатка += присвоение со сложением -= присвоение с вычитанием <<= присвоение со сдвигом влево >>= присвоение со сдвигом вправо &= присвоение с побитовым-И |= присвоение с побитовым включающим-ИЛИ ^= присвоение с побитовым исключающим-ИЛИ При присвоении тип правого значения преобразуется в тип левого значения.

Приоритет и порядок проведения операций

Приоритет и ассоциативность выполнения операторов языка С влияет на группирование и вычисление операндов в выражениях. Приоритет выполнения операторов имеет смысл только в том случае, если имеются другие операторы с большим или меньшим приоритетом. Сначала всегда вычисляются выражения с большим приоритетом операторов.

В Таблице 5.1 показаны приоритеты и ассоциативность операторов языка С. Они приводятся в списке в порядке убывания их приоритета. Если на одной строке указано несколько операторов, то они имеют равный приоритет и вычисляются по правилам их ассоциативности.

Таблица 5.1. Приоритет и ассоциативность операторов языка С Символ Тип операции Ассоциативность () [] . -> выражения слева направо - ~ ! * & унарные справа налево ++ -- sizeof тип унарные справа налево * / % мультипликативные слева направо + - аддитивные слева направо << >> сдвиг слева направо < > <= >= отношения (неравенство) слева направо == != отношения (равенство) слева направо & битовое-И слева направо ^ битовое включающее-ИЛИ слева направо | битовое исключающее-ИЛИ слева направо && логическое-И слева направо || логическое-ИЛИ слева направо ?: условие справа налево = *= /= %= простые и составные присвоения справа налево += -= <<= >>= простые и составные присвоения справа налево &= |= ^= простые и составные присвоения справа налево , последовательные вычисления слева направо

Операторы приведены в списке по убыванию их приоритета. Если на одной строке расположено несколько операторов, то они имеют равный приоритет.

Используйте скобки!

Операторы

Введение

Операторы программы на языке С управляют процессом ее выполнения.

Составные операторы ограничиваются фигурными скобками ({}). Все другие операторы языка С заканчиваются точкой с запятой (;).

Любой оператор языка С может начинаться с идентифицирующей его метки, которая состоит из имени и двоеточия. Метки операторов распознаются только оператором goto.

При выполнении программы на языке С ее операторы выполняются в том порядке, в котором они появляются в программе, если нет оператора, который бы явно передавал управление в другое место программы.

Оператор break

Синтаксис: break;

Оператор break прекращает выполнение вложенного оператора do, for, switch или while, в котором он появляется. Управление передается тому оператору, который непосредственно следует за прерванным оператором. Оператор break может появиться только в операторах do, for, switch или while.

Для вложенных операторов оператор break прекращает выполнение только оператора do, for, switch или while, в котором он появился. Для передачи управления из вложенной структуры можно использовать оператор return или goto.

Составной оператор

Синтаксис: { [объявление] . . . оператор [оператор] . . . }

Составной оператор обычно появляется как тело другого оператора, например, оператора if. При выполнении составного оператора его операторы выполняются в том порядке, в котором они появляются, если не встретится оператор, который явно передает управление в другое место программы.

Оператор continue

Синтаксис: continue;

Оператор continue передает управление на следующую итерацию оператора do, for или while, в котором он появляется передавая все оставшиеся операторы тела оператора do, for или while. Следующая итерация оператора do, for или while понимается следующим образом:

  • В операторе do или while следующая итерация начинается вычислением выражения оператора do или while.
  • В операторе for следующая итерация начинается вычислением выражения цикла оператора for. После вычисления условного выражения в зависимости от его результатов происходит либо прекращение выполнения оператора либо выполнение его тела.

Оператор do

Синтаксис: do оператор while (выражение);

Тело оператора do выполняется один или несколько раз до тех пор, пока значением выражения не станет "ложь" (0). Выполнение происходит следующим образом:

  1. Выполняется тело оператора.
  2. Вычисляется выражение. Если его значение "ложь", то выполнение оператора do заканчивается и управление передается следующему оператору программы. Если его значение "истина" (ненулевое значение), то процесс повторяется, начиная с шага 1.

Выполнение оператора do может быть прервано выполнением оператора break, goto или return в теле оператора do.

Оператор-выражение

Синтаксис: выражение;

При выполнении оператора-выражения, выражение вычисляется в соответствии с правилами, приведенными в Главе "Выражения и присвоения".

В языке С присвоения являются выражениями. Значением выражения в этом случае будет присваиваемое значение (иногда называемое "правым значением").

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

Оператор for

Синтаксис: for([начальное-выражение]; [условное-выражение]; [выражение-цикла]) оператор

Тело оператора for может выполниться несколько раз, а может не выполниться ни разу, пока значением необязательного условного-выражения не станет "ложь". Можно использовать необязательные начальное-выражение и выражение-цикла для инициализации и смены значений при выполнении операторов for.

Выполнение оператора for происходит следующим образом:

  1. Вычисляется начальное-выражение, если оно есть.
  2. Вычисляется условное-выражение, если оно есть. Возможны три результата:
    • Если значение условного-выражения "истина" (ненулевое), то выполняется оператор. Затем вычисляется выражение-цикла, если оно есть. Процесс начинается снова с вычисления условного-выражения.
    • Если условное-выражение опущено, то считается, что его значение "истина" и процесс выполнения протекает так, как это описано в первом случае. Оператор for без аргумента условного-выражения прекращает свое выполнение только в случае выполнения оператора break или return в теле оператора, или при выполнении оператора goto (который передаст управление на оператор с меткой вне тела оператора for).
    • Если значение условного-выражения "ложь", то выполнение оператора for прекращается и управление передается к следующему оператору программы.

Оператор for также прекращает свое выполнение при выполнении в теле оператора оператора break, goto или return.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.