Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Си.doc
Скачиваний:
11
Добавлен:
04.06.2015
Размер:
2.75 Mб
Скачать

Универсальный алгоритмический язык Сибыл разработан в 1972 году 30-летним специалистом по системному программированию, сотрудником фирмыBELLLABORATORIESДеннисом Ритчи, получившим степень бакалавра по прикладной математике в Гарвардском университете.

Название Си(С) – это третья буква английского алфавита. ЯзыкСистал преемником ранее созданного для внутреннего использования фирмой языкаБи(В). Отчасти языкБи основывался на созданном в Кембриджском университете языкеBCPL(Basic CombinedProgramming Language– базовый комбинированный язык программирования), который в свою очередь стал потомкомАлгола-60.

Первоначально Сибыл задуман как средство для написания операционной системыUNIX, но как только эта система получила широкое признание в компьютерном мире, он обрел популярность как так называемый язык среднего уровня. В нем удобство, краткость и мобильность языков высокого уровня сочетаются с возможностью непосредственного доступа к аппаратуре, что традиционно обеспечивалосьАссемблером. Автор сумел избежать катастрофической сложности языков-предшественников, пытавшихся угодить всем и во всем. Однако такой подход не лишилСиего мощи: из ограниченного набора его элементов можно по немногим простым и логичным правилам составлять очень сложные конструкции.

Сила языка Сизаключается в способности его создавать сложные программы из простых элементов. Можно сказать, что девизом языкаСистало «Multum in parvo» -многое изнемногого. Этому способствовали его особенности:

  • в нем реализованы некоторые операции низкого уровня (операции над битами), напрямую соответствующие машинным командам,

  • его базовые типы данных отражают те же объекты, с которыми приходится иметь дело в программах на Ассемблере– байты, машинные слова, символы, строки,

  • он поддерживает механизм указателей на переменные, массивы, структуры и функции,

  • несмотря на эффективность и мощность своих конструкций, он относительно мал по объему.

Первое описание языка Сибыло даноБ.КерниганомиД.Ритчив ставшей раритетом книге «Язык программирования Си», появившейся в 1978 году. Второе, переработанное и дополненное, издание этой книги вышло в свет в 1988 году [1] (имеется русский перевод).

Стандарт языка Си, соответствующий данному описанию, был утвержден Американским национальным институтом стандартов ANSIв 1989 году. Этому же стандарту соответствует краткий по объему, но насыщенный по содержанию справочник [2].

Язык, написанный одним человеком, обычно отражает опыт автора. Деннис Ритчи– выдающийся системный программист, разрабатывающий языки программирования, операционные системы и текстовые редакторы. ПоэтомуСи– это язык, созданный программистом для программистов, чего нельзя сказать о других алгоритмических языках:Коболсоздан для менеджеров,Бейсик– для школьников,Паскаль– для студентов,ФортраниАлгол– для научных работников и аспирантов,Ада– для военных,Лого– для детей,Пролог– для интеллектуалов,ПЛ/1– для любителей сложностей,АПЛ– для марсиан. ОдинСи– это язык для программистов-профессионалов. Однако этот язык не предназначен для первоначального обучения программированию. Поэтому лучше всего изучать языкСипосле освоения одного из базовых современных языков программирования –Паскаля.

Алфавит языка

Алфавит языка Си– это набор символов языка, используемых при написании программ. Он включает в себя три категории символов:

  • буквы,

  • цифры,

  • специальные знаки.

К категории буквотносятся:

26строчныхбукв латинского алфавита:

a b c d e f g h I j k l m n o p q r s t u v w x y z

26 прописных букв латинского алфавита:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

причем одинаковые строчные и прописные буквы считаются разными символами.

Для записи комментариев и работы со строками могут дополнительно использоваться строчные и прописные буквы русскогоалфавита.

К категории цифротносятся десятьарабскихцифр:

0 1 2 3 4 5 6 7 8 9

Специальнымизнаками являются символы:

+ плюс ‘ апостроф

- минус “ кавычки

* звездочка ? вопросительный знак

/ дробная черта ! восклицательный знак

< меньше _ знак подчеркивания

> больше () круглые скобки

= равно [] квадратные скобки

. точка {} фигурные скобки

, запятая | вертикальная черта

; точка с запятой \ слэш

: двоеточие # знак номера (шарп)

~ тильда % процент

^ карат & амперсанд

Служебные слова

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

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

autoавтоматическийintцелый

breakпрерватьlongдлинный

caseвариантmainголовная

charсимвольныйregisterрегистровый

constконстантаreturnвозврат

continueпродолжатьshortкороткий

defaultпо умолчаниюsignedсо знаком

defineопределятьsizeofразмер

doвыполнятьstaticстатический

doubleдвойнойstructструктура

elseиначеswitchпереключатель

enumперечисляемыйtypedefопределить тип

externвнешнийunionсмесь

floatвещественныйunsignedбез знака

forдляvoidпустой

ifеслиwhileпока

includeвключать

Константы

Константы представляют собой величины, не изменяемые в процессе выполнения программы.

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

  • целые,

  • вещественные,

  • символьные,

  • строковые.

В отличие от Паскаля, вСиотсутствуют константы логического типа (true, false).

Целыеконстанты – это целые числа, которые могу быть представлены в десятичной, восьмеричной и шестнадцатеричной системах счисления.

Целые десятичныеконстанты – это обычные целые числа в диапазонах:

простое целое int:-32768 … +32767,

целое без знака unsigned int:0 … 65535,

длинное целое long:-2 147 483 648 … +2 147 483 647,

длинное целое без знака unsigned long int:0 … 4 294 967 295.

Внимание!Целая десятичная константа не может начинатьсяс нуля!

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

простое вещественное float:±3,4×10-38…±3,4×10+38,

вещественное двойной точности double:±1,7×10-308…±1,7×10+308.

Вещественные константы могут быть записаны в двух формах:

форме с фиксированнойзапятой – в виде десятичной дроби, причем вместо десятичной запятой ставится десятичная точка:

3.14159265358979 -2.71 1.4142 1.72

форме с плавающейзапятой – в виде десятичной дроби с последующим десятичным порядком, который обозначается буквойE (e):

-2.31E-4 3.16e21 25.8e-6 -0.275E7

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

A’ ‘a’ ‘Z’ ‘z’ ‘*’ ‘1’ ‘9’ ‘,’ ‘>’

Все символьные константы имеют внутреннее машинное двоичное представление, то есть каждому символу соответствует двоичноечисло в кодеASCII(американский стандартный код обмена информацией). Поэтому символьные константы вСисчитаются даннымицелоготипа и соответствуют целым десятичным числам в диапазоне0 … 255(приложение 1).

В Сиразличают особую группу символьных констант, используемых при вводе и выводе данных – управляющие символьные константы илиESC-последовательности. Они заключаются в апострофы и состоят изслэшаи одного из символов алфавита языка:

\aзвуковой сигнал

\bвозврат на шаг

\fперевод страницы

\nперевод строки

\rвозврат каретки

\tгоризонтальная табуляция

\vвертикальная табуляция

\0’ нулевой символ (нулевой байт) – конец строки

\’’апостроф

\\’слэш

\?’вопросительный знак

\”’кавычка

Строковаяконстанта (строковый литерал) представляет собой последовательность символов языка, заключенную вкавычки:

This is a character string”

abcdefghijklmnopqrstuvwxyz

Это строковая константа”

Введите исходные данные:”

В конце каждой строки компилятор (переводчик с языка Сина язык машинных кодов) автоматически помещает нулевой символ‘\0’, отмечающий ее конец.

В строковую константу могут быть включены ESC-последовательности, рассматриваемые как один отдельный символ:

\nВведите исходные данные:”

При выводе этой константы на экран сначала будет сделан перевод на новую строку, а затем выведено сообщение:

Введите исходные данные:

Строковые константы, отделенные в программе только пробельными символами, при компиляции объединяются в одну. Длинную строковую константу можно разместить на нескольких строках, используя в качестве знака переноса ESC-последовательность‘\n:

\nПрограмма\nстудента группы ИС-10\nИванова Ванечки”

Эта константа будет выведена на экран в следующем виде:

Программа

студента группы ИС-10

Иванова Ванечки

Внимание!Пустая символьная константа‘’недопустима!

Обратите внимание на разницу между строковой константой из одного символа, например, A, и похожей символьной константойA.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]