Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций_2015.doc
Скачиваний:
36
Добавлен:
03.03.2016
Размер:
532.48 Кб
Скачать

Пример 6.4:

170 /*десятичная*/

0252 /*восьмиричная*/

0хАА /*шестнадцатиричная*/

170L /*десятичная длинная*/

0252L /*восьмиричная длинная*/

AАL /*шестнадцатиричная длинная*/

Во внутреннем представлении, если целая константа превысила 16 разрядов – автоматически представляется как 32 разряда (10 с/с). Если значение 8-ой или 16-ой константы превысило наибольшее целое без знака, то оно также будет представлено, как длинное беззнаковое.

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

У констант с плавающей точкой float обязательно должны быть либо десятичная точка, либо е (экспоненциальная часть):

314.15 e-2 = 3.1415 = 314*10-2

6.4.3.3 Символьная

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

1) для представления “читаемых” (“печатных”) символов используются внутримашинные коды – ASCII, КОИ-8, ДКОИ.

2) Специальные символьные константы (ESС-последовательности):

  • Апостроф \’

  • Кавычки \”

  • Пусто (нулевой символ) \0

  • Новая строка \n

  • Обратная косая \\

3) Последовательности трех восьмеричных символов: \ddd (код символа).

Пример 6.5:

M’ ‘m’ ‘П’ ‘п’

\n’ ‘\\’

\016’ = ‘f

Символьная константа имеет тип int (т.к. есть расширенные коды в ASCII, размером в 2 байта).

6.4.3.4.Строковая константа

Последовательность символов кодов внутримашинного представления, заключенная в парные кавычки (“ ”).

Пример 6.6:

MM” “”ПМ” “Informatique” “m” “o”

Строковая константа представляет собой массив символов, в конце которого вставлен код признака конца строки - \0.

“ПМ”

П

М

\0

6.4.3.5 Константное выражение

Оперирует только с константами.

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

#define <имя> <текст>

<имя> - символьное имя

<текст> - последовательность литер

Семантика:

Далее по тексту программы производиться замена <имя> на <текст>, кроме как:

  • внутри строковых констант;

  • если цепочка, составляющая имя, является частью определения другого имени.

Особенности синтаксиса:

  • имя может содержать только из заглавные буквы;

  • не нужно писать декларации;

  • ее нужна ; после #define.

Пример 6.7:

#define MAX 100

#define V_YEAR 1

После своего определения именованные константы могут использоваться в константных выражениях.

Пример 6.8:

#define MAX 100

float a[MAX]…

Пример 6.9:

#define V_YEAR 1

int days_of_year [31+28+V_YEAR+31+30+31+30+31+31+30+31+30+31];

7 Декларации в си

7.1 Декларации – назначение и синтаксис

В Си переменные надо объявлять до первого использования.

Декларация:

  1. специфицирует тип;

  2. содержит список переменных этого типа;

  3. возможна начальная инициализация;

  4. возможен квалификатор константы (const).

Пример 7.1:

int up, down, step;

char c, str[101];

или

int up;

int down;

int step;

char c;

char str[101];

7.2 Инициализация

Инициализация (от англ. Initial – начальное) – это процесс придания переменным начальных значений при их объявлении. Записывается в Си в виде выражения после символа равно при декларации переменной:

char newline=’\n’;

Если обычная декларация только выделяет память для переменной, то декларация с инициализацией, записывает в память и соответствующую информацию.

Пример 7.2

int i =0;

int board=MAX+1;

float eps=1.0e-3;

char error[]=”Ошибка: ”;

О

ш

и

б

к

а

:

\0

int kdm[12]={31,28,31,30,31,30,31,30,31,31,30,31,30,31};

7.3 Квалификатор константы const

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

Пример 7.3:

const float pi=3.1415;

const int kdm[12]={31,28,31,30,31,30,31,30,31,31,30,31,30,31};

……

pi=3.14; /*нельзя*/

kdm[i]=kdm[i]+1; /*нельзя*/