Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
200801_Lec_01.pdf
Скачиваний:
15
Добавлен:
16.03.2015
Размер:
283.41 Кб
Скачать

1.3 Базовые понятия языка Си*

1.3.1 Алфавит

Алфавит языка состоит из следующих символов:

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

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

цифры: 0123456789

специальные символы: " , { } | [ ] ( ) + - / % \ ; ' . : ? < = > _

! & * # ~ ^

неотображаемые символы: пробел, табуляция, переход на новую строку (LF)

Примечание: в комментариях, строках и символьных константах могут использоваться другие буквы. Комментариями является всё, что находится между открывающими (/*) и закрывающими (*/) символами. Комментарии игнорируются компилятором. Это удобное средство добавить пояснения в код программы.

1.3.2 Лексемы#

Язык Си поддерживает шесть типов лексем:

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

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

3.Константы

4.Строки

5.Операции

6.Разделители

Идентификатор – это последовательность букв, цифр и знаков подчёркивания (_), начинающаяся с буквы или символа подчёркивания. Заглавные и строчные буквы различаются, т.е. идентификаторы aSunnyDay, asummyday, asunnyDAY – различны (!). Длина идентификатора определяется стандартом языка Си, стандарт C99 позволяет использовать до 31 символа в имени (более раннии стандарты – до 8 символов). Идентификаторы используются для именования переменных.

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

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

auto

continue

enum

break

default

extern

case

do

float

char

double

for

const

else

goto

* Материал изложен в соответствии с [1], [2].

# Лексема – единица лексического уровня языка, слово во всей совокупности его лексических значений

if

static

while

int

struct

inline

long

switch

restrict

register

typedef

_Bool

return

union

_Complex

short

unsigned

_Imaginary

signed

void

 

sizeof

volatile

 

Служебные слова по типу данных делят на спецификаторы типов и квалификаторы типов.

Таблица 1: Основные спецификаторы типов

Тип

Описание

 

 

 

Размер1

char

символьный

 

 

1

байт (8 бит)

 

 

 

 

 

 

 

int

Целое число

 

 

4

байта (32

бита)

 

 

 

 

 

 

 

float

Вещественное

число

с

4

байта (32

бита)

 

плавающей точкой

 

 

 

 

double

Вещественное

число

с

8

байт (64 бита)

 

плавающей точкой двойной

 

 

 

 

точности

 

 

 

 

 

long

Длинное целое

 

 

4

байта (32

бита)

 

 

 

 

 

 

 

short

Короткое целое

 

 

2

байта (16

бит)

 

 

 

 

 

 

 

Таблица 2: Квалификаторы типов

Тип

Описание

 

 

const

Квалификатор объекта, имеющего постоянное значение

 

 

volatile

Квалификатор объекта, значение которого может измениться

 

без явных указаний программиста

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

Символьные константы используются для отображения отдельных знаков, имеющих собственные внутренние коды: 'A','a','B','b' и т.п.Также используются специальные символьные константы, называемые управляющими последовательностями – наборы литер, начинающиеся со знака \. Список управляющих последовательностей приведён ниже (Таблица 3).

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

1Размер памяти, выделяемый под данные того или иного типа, зависит от аппаратной и программной реализации. В таблице приведены наиболее типичные значения для 32-битной арифметики.

Таблица 3: Управляющие последовательности

Последоват

Значение

ельность

 

 

 

\n

Перевод строки

 

 

\t

Горизонтальная табуляция

 

 

\r

Возврат каретки к началу строки

 

 

\\

Обратная косая черта

 

 

\'

апостроф

 

 

\"

кавычка

 

 

\0

Нулевой символ

 

 

\a

Сигнал-звонок

 

 

\b

Возврат на одну позицию

 

 

\f

Прогон страницы

 

 

\v

Вертикальная табуляция

 

 

\?

Знак вопроса

 

 

Нулевой указатель- именованная константа NULL.

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

Операции. Операции делятся на унарные (одноместные) и бинарные (двухместные). Бинарные, в свою очередь, делятся на аддитивные ( + - ), мультипликативные (* /), сдвиговые, поразрядные, операции отношений ( > < и т.п.), логические, присваивания, выбора компонента структурированного объекта, операцию «запятая», скобки.

Разделители, или знаки пунктуации: [] () {} , ; : ... * = #.

Библиография

Керниган Б., Ритчи Д. Язык программирования Си. - СПб.: Невский диалект, 2001. Подбельский В.В., Фомин С.С. Программирование на языке Си. - М.: Финансы и статистика, 1998.

Прата С. Язык программирования Си. Лекции и упражнения. - М.: ДиаСофт, 2001.

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