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

Объявления пpостой пеpеменной





Операторы

"Операторы" это символы (состоящие из одного символа или комбинации символов), которые задают манипуляции над значениями.

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

Оператор sizeof

Таблица 2.3. "Унарные операторы"

Оператор Название

! логическое НЕ

~ битовое дополнение

- арифметическое отрицание

* индерекция

& адресация

+ унарный плюс

Таблица 2.4. "Бинарные и тернарные операторы" // 2 и 3

Оператор Название

+ сложение

- вычитание

* умножение

/ деление

% остаток

<< сдвиг влево

>> сдвиг вправо

<= меньше или равно

> больше

>= больше или равно

== эквивалентно

!= неэквивалентность

& битовое И

| битовое включающее ИЛИ

^ битовое исключающее ИЛИ

|= битовое присвоение включающего ИЛИ

&& логическое И

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

, последовательное

?: условие

++ инкремент

-- декремент



= простое присвоение

+= присвоение со сложением

-= присвоение с вычитанием

*= присвоение с умножением

/= присвоение с делением

%= присвоение с остатком

>>= присвоение со сдвигом вправо

<<= присвоение со сдвигом влево

&= присвоение с битовым И

^= присвоение с битовым исключающим ИЛИ

Условное выражение имеет вид: выражение? выражение:выражение

Константы

Константа это число, символ или строка символов, которая в программе используется, как значение. Значение константы нельзя изменить.

Целые константы

Синтаксис: цифры 0цифры 0xцифры 0Xцифры

"Целая константа" это десятичное, восьмеричное или шестнадцатеричное число, которое представляет собой целое значение в одной из следующих форм:

  • "Десятичная константа" имеет форму одной или нескольких цифр (от 0 до 9), первая из которых не ноль.
  • "Восьмеричная константа" имеет форму 0цифры, где цифры это одно или нескольких восьмеричных цифр (от 0 до 7), первая из которых ноль.
  • "Шестнадцатеричная константа" имеет форму 0xцифры или 0Xцифры, где цифры это одно или нескольких шестнадцатеричных цифр (от 0 до 9 и прописные или строчные буквы от a до f), указание 0x или 0X обязательно.

Константы с плавающей точкой



Синтаксис: [цифры][.цифры][E|e-[+]цифры] "Константа с плавающей точкой" это десятичное число, которое соответствует действительному числу со знаком. Значение действительного числа со знаком состоит из целой части, дробной части и показателя степени.

Символьные константы

Синтаксис: 'символ'

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

Строковые литералы

Синтаксис: "символы"["символы"]...

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

Идентификаторы

Синтаксис: буква|_[буква|цифра|_]...

"Идентификаторы" это имена, которые Вы присваиваете переменным, типам, функциям и меткам в вашей программе. Идентификатор это последовательность из одной или нескольких букв, цифр или знаков подчеркивания (_), которая обязательно начинается с буквы или подчеркивания. Идентификатор может содержать любое число символов, но компилятор различает только первые 31 символ. (Другие программы, которые могут читать вывод компилятора (например, компоновщик), могут распознавать еще меньшее число символов.)

Структура программы

Время и сфера действия

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



Блоки

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

Заметим, что хотя все составные операторы заключаются в скобки, не все заключенное в скобки есть составной оператор. Например, хотя спецификации массивов, структур и перечислимых элементов могут быть заключены в скобки, они не рассматриваются в качестве составного оператора.

Время действия

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

Время действия переменной может быть внутренним (локальным) или внешним (глобальным). Элемент с локальным временем действия ("локальный элемент") хранит и определяет значение только в блоке, в котором он был определен или объявлен. Локальному элементу всегда выделяется новое место в памяти каждый раз, когда программа входит в блок, и хранимая величина теряется, когда программа выходит из блока. Если время действия переменной глобально (глобальный элемент), то он хранит и определяет значение на всем протяжении выполнения программы.

Следующие правила определяют, имеет переменная глобальное или локальное время действия:

- Переменные, которые объявлены на внутреннем уровне (в блоке) обычно имеют локальное время действия. Можно задать для переменной в блоке глобальное время действия, если указать в ее объявлении спецификатор класса хранения static. После объявления static переменная будет хранить в себе значение от одного вызова блока до другого. Однако, к ней можно будет обратиться только в данном блоке или из вложенных в него блоков.

- Переменные, которые объявлены на внешнем уровне (вне всех блоков программы) всегда имеют глобальное время действия.

Сфера действия

"Сфера действия" элемента определяет ту часть программы, в которой на него можно сослаться по имени. Элемент доступен только в своей сфере действия, которая может быть ограничена (в порядке усиления ограничений) файлом, функцией, блоком или прототипом функции, в котором она появляется.

В С только имя метки всегда имеет сферой своего действия функцию. Сфера действия любого другого элемента определяется уровнем, на котором производится его объявление. Объявленный на внешнем уровне элемент имеет сферой своего действия весь файл и доступен из любого места файла. Если его объявление происходит в блоке (включая список формальных параметров в определении функции), то сфера действия элемента ограничивается данным блоком и вложенными в него блоками. Имена формальных параметров в списке параметров прототипа функции имеют сферу действия только от объявления параметра до конца объявления функции.

 

Объявления

[спец-хpан][спец-тип]декл[=иниц][,декл[=иниц]]...

где "спец-хpан" это спецификатоp хpанения; "спец-тип" это имя оп­ pеделяемого типа; "иниц" задает значение или последовательность значений, котоpые будут пpисвоены объявляемой пеpеменной. "декл" это идентификатоp, котоpый может быть модифициpован пpямоугольными ([]), фигуpными (()) скобками или звездочкой (*).

До своего использования все пеpеменные в С должны быть явно объявлены. В С можно явно объявить функцию ее пpототипом. Если не задать пpототипа, то он будет создан автоматически по той инфоpмации, котоpая пpисутствует пpи пеpвой ссылке на функцию пpи ее опpеделении или вызове.

Язык С имеет стандаpтный набоp типов данных. Пользователь может создавать свои собственные типы данных, объявление котоpых основано на уже имеющихся типах данных. Можно объявлять массивы, стpуктуpы данных и указатели как на пеpеменные, так и на функции.

Объявления тpебуют одного или нескольких "деклаpатоpов". Деклаpатоp - это идентификатоp, котоpый может быть модифициpован пpямо­ угольными ([]), фигуpными (()) скобками или звездочкой (*) для объявления соответственно массива, типа функции или пойнтеpа. Пpи опpеделении пpостых пеpеменных (каковыми являются символьные, целые или с плавающей точкой) или стpуктуp и союзов пpостых пеpеменных, деклаpатоp является пpосто идентификатоpом.

Деклараторы

Синтаксис: идентификатор декларатор[[постоянное-выражение]] *декларатор (декларатор)

Объявления переменных

Синтаксис: [хран-спец]тип-спец декларатор[,декларатор]...

Объясняется, как объявлять:

Простые Отдельные переменные с одним значением, переменные интегрального типа или с плавающей точкой Перечислимые Простые переменные интегрального типа, которые переменные хранят одно значение из набора поименованных целых констант Структуры Переменные, составленные из набора значений, которые могут иметь разный тип Об'единения Переменные, составленные из нескольких значений разного типа, которые занимают одну область памяти Массивы Переменные, составленные из набора значений одного типа Пойнтеры Переменные, которые указывают на другие переменные и содержат местоположение переменной (в форме адреса) вместо ее значения

В общей форме объявления переменной "тип-спец" задает тип данных переменной, а "декларатор" задает имя переменной, возможно модифицированное для объявления типа массива или пойнтеpа. "Тип­ -спец" может быть составным, когда тип модифициpует const, volatile или одиним из специальных ключевых слов, описанных в pазделе "Объявления со специальными ключевыми словами". Можно объявить сpазу несколько пеpеменных, если в объявлении исполь­ зовать чеpез запятую множественные деклаpатоpы.

"Хpан-спец" задает класс хpанения пеpеменной. В некотоpых случаях можно инициализиpовать пеpеменную в момент ее объявления.

Объявления пpостой пеpеменной

Синтансис: [хpан-спец]тип-спец идентификатоp[.идентификатоp]...

В объявлении пpостой пеpеменной задается ее имя и тип. Kpоме того, можно задать класс хpанения пеpеменной, как это описано в pаз­ деле "Kлассы хpанения". "Идентификатоp" в объявлении это имя пеpе­менной. "Тип-спец" это имя опpеделяемого типа данных. Можно в одном объявлении задать несколько пеpеменных, вводя их идентификатоpы списком чеpез запятую. Kаждый идентификатоp в списке имен задает имя пеpеменной. Все опpеделяемые в объявлении пеpеменные имеют один тип.

 








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



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