Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

shoe <18.5

получает значение false, потому что 19.0 не меньше 18.5. Как только это произойдет, управление передается первому оператору, следующему за циклом while. В данном случае им является финальный оператор printf().

Рассмотренную программу можно легко модифицировать для выполнения других преобразований. Например, установив SCALE в 1.8 и ADJUST в 32.0, вы получите программу, которая преобразует значение температуры по Цельсию в значение но Фаренгейту. Присвоив SCALE значение 0.6214 и ADJUST — 0, вы реализуете преобразование километров в мили. Естественно, понадобится также соответствующим образом изменить выводимые сообщения. Цикл while предоставляет в ваше распоряжение удобное и гибкое средство управления внутри программы. Теперь давайте перейдем к ознакомлению с фундаментальными операциями, которые вы можете применять в своих программах.

Фундаментальные операции

Для представления арифметических действий в языке С используются операции. Например, операция + вызывает сложение двух значений, находящиеся по обе стороны символа операции. Если термин операция кажется вам странным, подумайте о том, что вещи такого рода должны как-то называться. “Операция” представляется более удачным вариантом, чем, скажем, “эта вещь” или “арифметический транзактор”. Теперь рассмотрим операции, применяемые для базовой арифметики: =, +, -, * и /. (В языке С операция возведения в степень отсутствует. Тем не менее, библиотека стандартных математических функций С предлагает для этих целей функцию pow(). Например, pow (3.5, 2.2) возвращает значение 3.5, возведенное в степень 2.2.)

Операция присваивания: =

В языке С знак = не означает “равно”. Вместо этого им обозначается операция присваивания значения. Например, следующий оператор присваивает значение 2 002 переменной по имени bmw:

bmw = 2002;

То есть элемент, расположенный слева от знака =, представляет собой имя переменной, а элемент справа — значение, присваиваемое этой переменной. Символ = называется операцией присваивания. Еще раз: ни в коем случае не думайте, что эта строка гласит: “переменная bmw равна 2 002”. Взамен читайте ее так: “присвоить переменной bmw значение 2 002". Для этой операции действие происходит справа налево.

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

i = i + 1;

Операции, выражения и операторы 161

С точки зрения математики этот оператор не имеет смысла. После прибавления 1 к конечному числу результат не может быть “равен” исходному числу, однако как компьютерный оператор присваивания он совершенно корректен. Его смысл таков: “извлечь значение переменной по имени i, добавить 1 к этому значению и затем присвоить новое значение переменной i" (рис. 5.1).

Рис 51 Оператор i i 1 Оператор наподобие 2002 bmw в С не имеет - фото 113

Рис. 5.1. Оператор i = i + 1;

Оператор наподобие

2002 = bmw;

в С не имеет смысла (и, разумеется, не является допустимым), т.к. 2 002 — это то, что в языке С называется r-значением, которое в данном случае представляет собой просто литеральную константу. Присвоить значение константе невозможно; она уже является эквивалентом значения. Следовательно, не забывайте, что элемент слева от знака = должен быть именем переменной. В действительности левая сторона должна ссылаться на ячейку памяти. Простейший способ предполагает использование имени переменной, но как вы увидите позже, для этого можно применять “указатель”. В общем случае для пометки сущностей, которым можно присваивать значения, в С используется термин модифицируемое I-значение. Возможно, данный термин не особенно понятен, поэтому давайте введем некоторые определения.

Немного терминологии: объекты данных,

I-значения, r-значения и операнды

Рассмотрим оператор присваивания. Его назначение заключается в том, чтобы сохранить значение в ячейке памяти. Объект данных — это общий термин для обозначения области хранения данных, которая может применяться для удержания значений. Для обозначения этой концепции в стандарте языка С используется термин объект. Один из способов идентификации объекта предполагает применение имени переменной. Но, как со временем вы узнаете, для идентификации объекта существуют и другие способы. Например, вы могли бы указать элемент массива, член структуры или воспользоваться выражением указателя, которое включает в себя адрес объекта. Термин /-значение в С применяется для обозначения любого имени или выражения подобного рода, идентифицирующего конкретный объект данных. Объект относится к фактической области хранения данных, но 1-значение — это метка, которая используется для определения местоположения этой области памяти.

На заре развития языка С именование чего-либо 1-значением происходило при двух обстоятельствах.

1. Оно указывало объект, тем самым ссылаясь на адрес в памяти.

2. Оно могло применяться слева от символа операции присваивания; отсюда и буква “Г (от “left” — “левая часть”) в названии (значение.

Но затем в языке С появился модификатор const. Он позволяет создавать объект, но такой, значение которого не может изменяться. В итоге идентификатор const соответствует первому из двух описанных выше обстоятельств, ноне второму. В настоящее время стандарт продолжает использовать понятие 1-значения дтя любого

162 Глава 5

выражения, идентифицирующего объект, хотя некоторые 1-значения и не могут применяться в левой части операции присваивания. Поэтому в С был добавлен термин модифицируемое l-значение для идентификации объекта, чье значение может изменяться. Таким образом, левая часть оператора присваивания должна быть модифицируемым 1-значением.

В современном стандарте предлагается более точный термин: значение локатора объекта.

Термин r-значение относится к величинам, которые могут быть присвоены модифицируемым 1-значениям, но которые сами не являются 1-значениями. Например, рассмотрим следующий оператор:

bmw = 2002 ;

Здесь bmw — это модифицируемое l-значение, а 2002 — r-значение. Как вы уже, вероятно, догадались, “r” в r-значении происходит от слова “right” — “правая часть”). R-значениями могут быть константы, переменные или любое другое выражение, которое в результате дает значение, например, вызов функции. И действительно, в современном стандарте вместо термина r-значение применяется термин значение выражения.

Ниже приведен небольшой пример:

int ех;

int why;

int zee;

const int TWO = 2;

why = 42;

zee = why;

ex = TWO * (why + zee);

В этом примере ex, why и zee — модифицируемые l-значения (или значения локаторов объектов). Они могут использоваться слева или справа от символа операции присваивания. Здесь TWO — не модифицируемое 1-значение; оно может указываться только в правой части. (В контексте установки TWO в 2 операция = представляет инициализацию, а не присваивание, поэтому правило не нарушается.) В то же время 42 — это r-значение. Оно не ссылается на какую-то конкретную ячейку памяти. Кроме того, хотя why и zee — модифицируемые 1-значения, выражение (why + zee) является r-значением. Оно не представляет конкретную ячейку памяти и ему нельзя присваивать значение. Это всего лишь временное значение, которое программа вычисляет, а затем отбрасывает по завершении работы с ним.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

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




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x