Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 8

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 8 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 82019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 8)

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

Если модификатор типа используется отдельно (т.е. без указания злементарного типа), по умолчанию предполагается, что объявляемая переменная имеет тип ьп». Итак, указанные ниже спецификаторы типов эквивалентны. Саванфиквгор юдпеа ппв1дпеа 1опд БЬОх» вгдпеа ьп» плв1дгеа зп» 1опд в»аг» !и» Хотя одного спецификатора 1п» вполне достаточно, многие программисты прел- почитают явно указывать его модификации. ~ ~ Идентификаторы В языке С/С++ имена переменных, функций. меток и других объектов, определенных пользователем, называются иденаинринатарами (!пс(епт!йегз). Идентификаторы могут состоять из одного или нескольких символов.

Первый сил1вол идентификатора должен быть буквой или символом подчеркивания, а следуюшие символы должны быть буквами, цифрами или символами подчеркивания Ниже прпвелсны примеры правильных и неправильных идентификаторов. Правильно 1сопл» Ь11»веге !ЦдЬ...Ьв1впсе Сепп» »ев»гз Ьгдь Ьа1апсе В языке С длина идентификаторов может быть произвольной. Олнако не все символы, образуюшие идентификатор, считаются значагцими. Если илентнфикатор используется в процессе редактирования внешних связей, то значашими считаются, по крайней мере, шесть его первых символов.

Эти идентификаторы называкзтся анеингими именами (ехтегпа! пагпев). К ним относятся имена функций и глобальных переменных, используемых несколькими файлами. Если идентификатор не используется а процессе редактирования внешних связей, то значашими считаются, по крайней мере, 3! первый символ. Такие идентификаторы называются ануглренними именами (!агента! патпев). К ним относятся, например, имена локальных переменных, В языке С++ нет ограничений на ллину илентификаторов и значашими считаются, по крайней мере, 1024 первых символа. При переходе от языка с к языку С+-1- зтот нюанс следует учитывать.

Символы, набранные в верхнем и нижнем регистре, различаются. Слеловательно, оопп», Сопл» и Сптйгг — зто разные илентификаторы. Часть 1. Основы языка О++: подмножество О Иначе говоря, отрицательные числа представляются с помошью даналнигнельнага кода (пео'в согпр1ептепг), в котором все биты числа (за исключением старшего разряда) инвертированы, затем к полученному числу лобавляется елиница, а признак знака устанавливается равным 1. И»лыс числа со знаком играют весьма важную роль в очень многих алгоритмах, но диапазон их изменения вдвое короче, чем у целых чисел, не имеюших знака.

Рассмотрим двоичное представление числа 327б7 ~О111111111111111 Ключевые слова нельзя использовать в качестве идентификаторов ни в языке С, ни в языке С++. Кроме того, идентификаторы не должны совпадать с именами функций из стандартных библиотек. -~ Переменные //временил (чапаЫе) прелсгавляет собой имя ячейки памяти, которую можно использовать лля хранения модифицируемого значения. Все переменные должны быть объявлены до своего использования. Ниже приведен общий вид объявления переменной. глин список переменных; Злесь слово ныл означает один из допустимых типов данных, включая молификаторы, а слисок нереиенных может состоять из одного или нескольких идентификаторов, разлеленных запятыми.

Рассмотрим несколько примеров объявлений. гпе 1,2,1; в)загс гпс въ; ппвгяпес( гпг па; аоп)з1е Ьа1апсе, ргогзс, 1овв; Учтите, в языке С/С++ имя переменной никак не связано с ее типом. Где обьявля(отся переменные Как правило, переменные объявляют в трех местах: внутри функций, в определении параметров функции и за прелелами всех функций. Соответственна такие переменные называются локальными, формальными параметрами и глобальными. Локальные переменные Г!еременные, объявленные внутри функции, называются локальными ((оса! чапаЫев). В некоторых книгах, посвяшенных языку С/С++, эти переменные называются ивтомин)ическими (аигогпапс чапаЫев).

В нашей книге мы будем придерживаться более обшей терминологии и называть их локальными. Локальные переменные можно использовать только в операторах, расположенных внутри блока, где они объявлены. Иначе говоря, локальные переменные невилимы снаружи их блока. Напомним, что блок о)раничен открываюшей и закрываюшей фигурными скобками. Чаше всего локальные переменные объявляются внутри функций. Рассмотрим два примера. чозс) гппс1(чо!с)) 1пс х; х = 10; чоас( гппс2(чоЫ! ( 1пс х; х = -199т Переменная х объявлена дважды: сначала — в функции в1пс1() „а затем — в функции гипса(). Переменная х из функции гппе1() не имеет никакого отношения Глава 2. Выражения к переменной и, объявленной внутри функции дцпсдО. Каждая из этих переменных сушествует только внутри блока, где она была объявлена.

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

Затем это слово перекочевало в язык С++ для обеспечения совместимости с языком С.) Из соображений удобства и по традиции большинство программистов объявляют все переменные, используемые в функции, сразу после открываюшей фигурной скобки и перед всеми остальными операторами. Однако следует иметь в виду. что локальные переменные можно объявлять в любом месте блока. Рассмотрим следуюший пример. човб т(чозс)) ( зпс г.; эсапт("%а*с", ьс)г зс(С==1) ( сваг э[80); /* Эта переменная создается только гри входе в данный блок */ ргъпСГ("Введите имя:"); десэ(э); /* Некие операции ...

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

В языке С все локальные переменные должны быть объявлены в начале блока до выполнения каких- либо ""активных" операторов. Например, попытка объявить локальные переменные так, как показано в приведенном ниже фрагменте, вызовет ошибку. /* Если эта туякция является частью программы яа языке С, прм компиляции возникнет оюибка. если эта 4ункция представляет собой часть программы на языке С++, ошибок не будет. */ ус)) чоЫ ( Епс 10; зпе З; /* Зтат оператор порождает ажибку */ Часть!.

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

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

Локальную переменную можно проинициализировать неким значением. Оно булет присваиваться переменной каждый раз при входе в блок. Рассмотрим в качестве примера программу, которая десять раз выводит на печать число (О. азпс1цг)е <вег)1о. Ь> чозб й(човс))з 1пе ща1п(ззоьс)) ( 1пс 1ог(1=0з 1<10з з++) В()з геецгп Оз чоЫ й(чоус)) ( ьпс рг1пей("яс) ", З)з /* Втот оператор не имеет долговременного эз)зФекта. */ ) Формальные параметры Если функция имеет аргументы.

следует объявить переменные, которые будут принимать их значения. Зги переменные называются формальными ларгьчезлраии (Гоггла) рагаше(егз). Внутри функции они ничем не отличаются от других локальных переменных. Как показано в приведенном ниже фрагменте программы, объявление таких переменных должно размешаться сразу после имени функции и заключаться в скобки.

/* Функция возвращает 1, если символ с является частью строки вз в противном случае она возвращает 0 */ 1пс 1в зп(сйаг *в, с)заг с) ( к)з11е(*в) Н (*в==с) геецхп 1з е1ве в++з Глава 2. Выражения тетитл Ог г Функция зв 1п() имеет два параметра: в и с. Она возвращает ), если символ с является чзсзью строки в, в противном случае функция возвращает О. Тип формальных параметров задается при их объявлении. После это~о их можно использовать как обычные локальные переменные, Учтите, что, кзк и локальные переменные, формальные параметры являются динамическими и разрушаются прн выхоле из функции.

Формальные параметры можно использовать в любых конструкциях и выражениях. Несмотря на то что свои значения они получаю~ от арггмснгов, перелавземых извне функции, во всем остальном они ничем не отличаются от локальных переменных. Глобальные переменные В отличие от локальных, глобальные леремеяяые (я)оЬа) тзпаЫез) доступны из любой части программы и могут быть использованы где угодно.

Характеристики

Тип файла
DJVU-файл
Размер
7,03 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее