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

Совместимость типов.

Что будет, если переменной одного типа попытаться присвоить значение другого типа? Машина постарается разумным образом преобразовать значение к типу переменной.

Приведем пару примеров.

Пример 1.

int i;

i=5.6;

Результат i=5.

Пример 2.

float x;

x=5/2;

Результат x=2.0;

Пример 3 (содержательный).

Переменной целого типа можно присваивать значение символьного типа.

int x;

x=getch();

printf(“x=%d, %c”,x,x);

Введем A.

Получим x=65,A

65 – это ASCII – код буквы А.

Enter – 13, Esc – 27, пробел – 32 и т.п.

Нажимая на разные клавиши, можно узнать их ASCII – коды.

Можно распечатать все ASCII – коды

for(i=0;i<256;i++){

printf(“%d %c \n”,i,i);

getch();

}

48-57 – коды цифр 0-9

65-90 - латинские буквы A-Z

97-122- латинские буквы a-z

128-159 – русские буквы А-Я

160-175,

224-239 – русские буквы а-я

Помимо этого в таблице кодов присутствуют символы псевдографики, интеграл, карточные масти и т.п.

Есть некоторые клавиши, нажатие на которые приводит к появлению двух кодов.

Пример.

int x,y;

x=getch();

y=getch(0;

Если нажмем ↑, то получим x=0, y=72.

Использовать все это можно в программах, в которых нужно организовать управление процессом.

Упр. Написать простое меню пользователя.

Выражения. Константы. Операции.

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

Операнд – это константа, переменная или выражение.

Константы – это неизменяемые величины. Различают целые, вещественные, символьные и строковые константы. Компилятор по внешнему виду константы относит ее к одному из типов.

Примеры констант.

12

Обычное целое число

012

Восьмеричное целое число

0x12

Шестнадцатеричное целое число

12L

Число типа long

3.14

Константы типа double

.75

25.

5E10

1.1e-6

3.14F

Константа типа float

10UL

Константа типа unsigned long

‘A’

Символьные константы

‘\n’

‘\”’

“Вася”

Строковые константы

“Не курите сигареты \”Прима\”!”

Маленький комментарий к последним примерам.

Строка “Вася” состоит из пяти символов – ‘В’,’а’,’с’,’я’,’\0’.

Последовательности символов, начинающиеся с обратной косой черты, называются управляющими последовательностями (или escape - последовательностями). Управляющая последовательность интерпретируется как одиночный символ.

Примеры управляющих последовательностей.

\a

Звуковой сигнал

\b

Возврат на шаг

\n

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

\r

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

\t

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

\v

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

\\

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

\’

Одинарная кавычка

\”

Двойная кавычка

\?

Вопросительный знак

\0ddd

Восьмеричный код символа

\0xddd

Шестнадцатеричный код символа

Операции делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).

Запишем основные операции и поговорим про некоторые из них.

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

Операция

Краткое описание

Унарные операции

++

--

sizeof

~

!

-

+

&

*

new

delete

(type)

Увеличение на 1

Уменьшение на 1

Размер

Побитовое (поразрядное) отрицание

Логическое отрицание

Унарный минус

Унарный плюс

Взятие адреса

Разадресация

Выделение памяти

Освобождение памяти

Приведение типа

Бинарные и тернарная операции

*

/

%

Умножение

Деление

Остаток от деления

+

-

Сложение

Вычитание

<<

>>

Сдвиг влево

Сдвиг вправо

<

<=

>

>=

Меньше

Меньше или равно

Больше

Больше или равно

==

!=

Равно

Не равно

&

Побитовое И

^

Побитовое исключающее ИЛИ

|

Побитовое ИЛИ

&&

Логическое И

| |

Логическое ИЛИ

?

Условная операция (тернарная)

=

*=

/=

%=

+=

-=

<<=

>>=

&=

|=

^=

Присваивание

Умножение с присваиванием

Деление с присваиванием

Остаток от деления с присваиванием

Сложение с присваиванием

Вычитание с присваиванием

Сдвиг влево с присваиванием

Сдвиг вправо с присваиванием

Побитовое И с присваиванием

Побитовое ИЛИ с присваиванием

Побитовое исключающее ИЛИ с присваиванием

,

Последовательное вычисление