2805

Базовые конструкции языка C

Лекция

Информатика, кибернетика и программирование

Базовые конструкции языка C К базовым конструкциям языка C относятся: алфавит, константы, идентификаторы, ключевые слова, операции, комментарии. Множество представимых символов языка C состоит из алфавита...

Русский

2013-01-06

58 KB

16 чел.

Лекция 3

Базовые конструкции языка C

К базовым конструкциям языка C относятся:

  •  алфавит;
  •  константы;
  •  идентификаторы;
  •  ключевые слова;
  •  операции;
  •  комментарии.

Множество представимых символов языка C состоит из алфавита языка C, разделительных символов и остальных, ввод которых возможен с клавиатуры, но которые могут использоваться только в символьных строках, константах и комментариях (буквы русского алфавита, escape-последовательности).

Алфавитом языка называется совокупность символов, используемых в языке. Язык C является чувствительным к регистру, то есть различает прописные и строчные буквы. В алфавит языка C входят:

  •  буквы латинского алфавита (прописные и строчные);
  •  десятичные цифры;
  •  знаки пунктуации.

Знаки пунктуации.

, . : ; ? ’ ” ! | \ / ~ _ ( ) { } [ ] # % & ^ - = + *

Из знаков алфавита составляются следующие конструкции языка C: константы, идентификаторы, ключевые слова, операции.

Разделительные символы – это символы, вводимые программистом с клавиатуры при написании программы для разделения слов. К ним относятся: пробел, горизонтальная и вертикальная табуляции, перевод строки, возврат каретки, новая страница, новая строка, Ctrl-Z – символ индикации конца файла.

Escape-последовательности применяются для представления символов и чисел, которые нельзя непосредственно ввести с клавиатуры, и разделительных символов в символьных строках и константах. Escape-последовательности используются в процессе выполнения программы. Escape-последовательность начинается с символа обратной косой черты (\), называемого escape-символом, после которого следует escape-код. Ниже в таблице перечислены escape-последовательности и их функции.

Последова-тельность

Название

Функция

\a

Звонок

Подает звуковой сигнал

\b

Backspace

Возврат на один символ

\f

Перевод страницы

Начало нового экрана

\n

Новая строка

Переход к началу новой строки

\r

Возврат каретки

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

\t

Табуляция

Переход к следующей позиции табуляции

\v

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

Переводит курсор вниз на несколько строк

\\

Обратная черта

Выводит обратную косую черту

\’

Апостроф

Выводит апостроф

\”

Кавычка

Выводит двойную кавычку

Можно также использовать escape-последовательности для представления ASCII-кодов символов в восьмеричном или шестнадцатеричном формате. Данное применение показано ниже в таблице.

Формат

Основание

Описание

\OOO

8

От одной до трех восьмеричных цифр, следующих за escape-символом

\xHH или \XHH

16

Одна или две шестнадцатеричных цифры, следующих за \x или \X

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

Лексема – единица текста программы, имеющая определённый смысл для компилятора и не содержащая в себе других лексем. Внутри лексем недопустимы пробелы, символы табуляции, перевода строки. Единственное исключение – это строки текста, внутри которых это возможно. Отсутствие пробелов между различными лексемами допустимо. Лексемы составляются из множества символов алфавита языка C и разделительных символов.

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

Комментарий – это последовательность символов, воспринимаемая компилятором как пробельные символы. Используется программистом для внесения пояснений в текст программы для себя или другого программиста, а также для выделения неиспользуемых фрагментов кода. Комментарий – это последовательность символов, начинающаяся с открывающей пары символов ‘/*’ и заканчивающаяся закрывающей парой символов ‘*/’.

Пример 1.

/* Это –

комментарий

*/

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

Пример 2.

/* Вложенные комментарии /* запрещены */ !*/

Комментарием в данном примере будет считаться последовательность символов, начинающаяся с первой открывающей пары символов ‘/*’ и заканчивающаяся первой закрывающей парой символов ‘*/’. Таким образом, последовательность символов ‘!*/’ не будет считаться комментарием и компилятор будет пытаться распознать её как лексему. В данном случае правильным будет следующий пример.

Пример 3

/* Вложенные комментарии /* запрещены */

Вложенные комментарии могут быть доступны, если вызвать командой меню Options>Compiler>Source диалоговое окно и в поле Source Options  установить флаг Nested comments. Тогда при компиляции программы с примером 2 ошибок не будет, а при компиляции программы с примером 3 будет выдана ошибка, так как отсутствует вторая закрывающая пара символов ‘*/’.

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

Ключевые слова – специально зарезервированные слова, имеющие для компилятора языка C особый смысл. Их нельзя использовать в качестве идентификаторов, их употребление строго определено. Ключевые слова стандарта ANSI языка C перечислены ниже.

auto

const

double

float

int

short

struct

unsigned

break

continue

else

for

long

signed

switch

void

case

default

enum

goto

register

sizeof

typedef

volatile

char

do

extern

if

return

static

union

while

Каждый компилятор может увеличивать количество ключевых слов, так как компилятор учитывает дополнительные возможности того типа компьютеров, для которых он создан. Компилятор Borland C++ 3.1 добавляет к ключевым словам стандарта языка C дополнительные слова, предназначенные для работы с памятью и регистрами процессоров семейства Intel, а также позволяющие использовать прерывания и фрагменты программ на другом языке. Эти дополнительные ключевые слова приведены ниже.

asm

__cs

far

__huge

_near

_seg

_asm

_ds

_far

interrupt

__near

__seg

__asm

__ds

__far

_interrupt

pascal

_ss

cdecl

_es

_fastcall

__interrupt

_pascal

__ss

_cdecl

__es

__fastcall

_loadds

__pascal

__cdecl

_export

huge

__loadds

_saveregs

_cs

__export

_huge

near

__saveregs

Помимо этих ключевых слов, компилятор Borland C++ 3.1 добавляет ещё имена регистровых псевдопеременных.

_AH

_BH

_CH

_DH

_SI

_SP

_ES

_AL

_BL

_CL

_DL

_DI

_CS

_SS

_AX

_BX

_CX

_DX

_BP

_DS

_FLAGS

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

asm

explicit

operator

template

using

bool

false

overload

this

virtual

catch

friend

private

throw

wchar_t

class

inline

protected

true

const_cast

mutable

public

try

delete

namespace

reinterpret_cast

typeid

dynamic_cast

new

static_cast

typename


 

А также другие работы, которые могут Вас заинтересовать

22281. Эндокринопатии Клинико-морфологические формы 24 KB
  По гистологическому строению зоб бывает колллоидным макрофолликулярным микрофолликулярным и смешанным и паренхиматозным Клиникоморфологические формы зоба: Эндемический зоб возникающий в определенных местах где мало йода в воде. Спорадический зоб появляется в молодом возрасте и у взрослых. Базедов зоб базедова болезнь – названа по фамилии немецкого врача – Базедов.
22282. БОЛЕЗНИ ПЕЧЕНИ 40.5 KB
  ГЕПАТОЗЫ – это болезни печени характеризующиеся дистрофией и некрозом гепатоцитов. ГЕПАТИТЫ – заболевания печени в основе которого лежит воспаление проявляющееся как в дистрофии и некрозе гепатоцитов так и в клеточной инфильтрации стромы. ОПУХОЛИ – болезни печени с развитием в ткани печени опухолевого процесса первичного или вторичного происхождения метастазы в печени.
22283. БОЛЕЗНИ ПОЧЕК (НЕФРОПАТИИ) 35.5 KB
  Гломерулопатии – это заболевания которые характеризуются первичными воспалительными или дистрофическими поражениями клубочков гломерул почек что ведет к нарушению функции фильтрации. Классификация гломерулопатий: гломерулонефриты нефротический синдром амилоидоз почек диабетический гломерулосклероз печеночный гломерулосклероз. Гломерулонефриты – это группа заболеваний почек для которых характерно: двухсторонний процесс воспалительные негнойные поражения клубочков гломерул почечные симптомы – гематурия эритроциты в моче...
22284. ВОЗДУШНО-КАПЕЛЬНЫЕ ИНФЕКЦИИ 35.5 KB
  Все изменения при этой болезни связаны с попаданием токсина в кровь – токсинемией. Экзотоксин всасывается в кровь что ведет к тяжелым общим изменениям со стороны миокарда нервной системы выделительной системы. Местные изменения в миндалинах при фиксации на них стрептококка характеризуются воспалением первичный скарлатинозный аффект с присоединением регионарного лимфаденита первичный скарлатинозный комплекс. Местные изменения в 1й период локализуются в зеве и миндалинах.
22285. ВОСПАЛЕНИЕ. Морфогенез 40.5 KB
  Этилогия Агенты воспаления факторы вызывающие воспаление: биологические агенты – бактерии вирусы иммунные комплексы физические агенты – травмы высокие и низкие температуры химические агенты – токсины и яды бактериальные и не бактериальные яды. Морфогенез Воспаление состоит из трех стадий: альтерация экссудация пролиферация. Гепатит – воспаления печени плеврит – воспаление плевры гастрит – воспаление желудка.
22286. ПРОДУКТИВНОЕ ВОСПАЛЕНИЕ 36 KB
  Виды продуктивного воспаления: межуточное интерстициальное воспаление гранулематозное воспаление воспаление вокруг животных паразитов воспаление с образованием папиллом и кондилом. МЕЖУТОЧНОЕ ВОСПАЛЕНИЕ Определение. ГРАНУЛЕМАТОЗНОЕ ВОСПАЛЕНИЕ Определение.
22287. ГАСТРИТ 44 KB
  По патогенезу: Гастрит типа А аутоиммунный характеризуется поражением фундального отдела желудка Гастрит типа В неиммунный локализуется в антральном отделе желудка. При этой форме происходит атрофия желез желудка. Макро – слизистая желудка бледная тонкая складки сглажены.
22288. Гипертоническая болезнь 46 KB
  Гипертоническая болезнь ГБ – хроническое заболевание характеризующееся длительным и постоянным повышением артериального давления АД что связано со спазмом артериол а затем и со склерозом артериол артериолосклероз. Это связано с кратковременным спазмом артериол. В эту стадию происходит гипертрофия мышечной оболочки артериол и незначительная рабочая гипертрофия миокарда левого желудочка. В основе этого состояния – склероз и гиалиноз стенки артериол.
22289. ДИСГОРМОНАЛЬНЫЕ БОЛЕЗНИ И ОПУХОЛИ ПОЛОВЫХ ОРГАНОВ 34.5 KB
  ГИПЕРТРОФИЯ ПРОСТАТЫ Определение: дисгормональная болезнь простаты которая возникает у мужчин в пожилом и старческом возрасте и характеризуется разрастанием железистого эпителия мышечной и соединительной ткани в виде узлов. Осложнения: на фоне гиперплазий молочной железы может развиться рак. Особенно часто рак развивается на фоне цистоаденопапилломы. Первые две формы не являются предраковыми состояниями.