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

Модификаторы

С типами данных int, char, short, long можно использовать модификатор unsigned, объявляющий их как беззнаковые. При этом диапазоны изменения объектов, описанных как unsigned, меняются. Также может быть использован модификатор signed, объявляющий объекты как знаковые.

Примеры:

unsigned int a3;

/* диапазон изменения от 0 по 65535 */

/* допустимо описание unsigned a3; */

unsigned char r3[24],j5; /* диапазон чисел от 0 до 255 включительно */

С типом данных int можно использовать модификаторы long,short.

Примеры:

long int f3; /* эквивалентно long f3; */

short int y4; /* эквивалентно short y4; */

С типом данных float и double можно использовать модификатор long.

Примеры:

long float f5; /* эквивалентно double f5; */

long double g7;

/* диапазон числа расширяется относительно типа

double, а длина составляет 10 байт.

Диапазон чисел примерно от 3.4e-4932 до 1.1e4932 */

Константы

Целые:

0 /* будет иметь тип int */

123 /* будет иметь тип int */

-247 /* будет иметь тип int */

12345676 /* будет иметь тип long , так как не помещается в тип int */

0435 /* восьмеричная константа - впереди 0 - имеет тип int */

0x2fe4 /* шестнадцатиричная константа - впереди 0х - имеет тип int */

145L /* имеет тип long - последний символ L или l */

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

0. /* это число ноль */

.1 /* одна десятая */

-1.3 /* минус 1 целая 3 десятых */

12e23 /* 12 умножить на 10 в 23-й степени */

.12e-3 /* 12 сотых умножить на 10 в степени -3 */

4.72e3

Примечание: все константы с плавающей точкой имеют тип double.

Символьные:

'f' - код символа f

'j' - код символа j

'\7' - символ, код которого 7 (звонок)

'\123' - символ, код которого 123

Строковые:

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

Примечания:

1. если внутри строковой константы надо поставить символ \, то пишем \\.

2. если внутри строковой или символьной константы есть один символ \, то далее идет восьмеричный код символа (3 числа) в виде, например, \205 или \xf4 (шестнадцатиричный код). Для символьной константы допустима, например, конструкция '\0'. Данная особенность используется для выведения символов, отсутствующих на клавиатуре, или специальных кодов (например, кода 7 - подача звукового сигнала).

3. символьная строка заканчивается символьным кодом 0. Этому коду по таблице ASCII не соответствует никакой символ.

Арифметические операции

Двухместные:

- умножение *

- деление /

- сложение +

- вычитание -

- целочисленное деление % (в результате получается остаток от деления, например, 26%3 даст 2)

- поразрядное логическое сложение |

- поразрядное логическое умножение &

- поразрядное дополнение (побитовая инверсия) ~

- поразрядное исключающее сложение ^

Одноместные:

- операция приращения ++(может стоять до или после объекта)

- операция уменьшения --(может стоять до или после объекта)

- сдвиг влево << (пример: a<<4)

- сдвиг вправо >> (пример: a>>5)

Приоритет двухместных операций в порядке уменьшения:

1. Умножение, деление

2. Сложение, вычитание

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

Логические операции

&& - логическое умножение

|| - логическое сложение

! - отрицание

Примечание: так как в С нет специального логического типа, то в качестве него используются объекты целого типа (1 - истина, 0 - ложь).

Адресные операции

& - операция определения адреса

* - операция обращения по адресу

Отношения

Они используются в операторах циклов и ветвлений. Результатом отношения является значение истинности: 1 - истина, 0 - ложь.

== - равно

!= - не равно

> - больше

< - меньше

<= - меньше или равно

>= - больше или равно

Скобки

В С используются 3 типа скобок:

1. () - задают последовательность выполнения операций в выражениях, используются для определения параметров функций при их описании и вызове, используются при записи операторов.

2. [] - задают индексы элементов массива или их границы при описании.

3. {} - задают тело функции, используются для задания группы операторов или набора данных.

Полезные библиотечные функции

1. Функция вывода на печать ( обычно на терминал)

int printf(<строка формата>,<объект>,<объект>,...);

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

Управляющие символы:

\n - переход на следующую строку

\r - переход на начало этой же строки

\f - перевод формата (переход на следующую страницу)

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

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

\b - забой

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

\' - апостроф

\" - кавычки

\\ - наклонная черта влево

\ddd - восьмеричный код символа (используется для записи кодов символов, отсутствующих на клавиатуре), здесь d - число.

\xdd - шестнадцатиричный код символа

Форматы:

d - целый формат

i - целый формат

f - вещественный формат

e - вещественный формат с порядком

g - обобщенный вещественный формат

c - символьный формат

s - строковый формат

p - адресный формат

x - шестнадцатиричный формат

X - шестнадцатиричный формат (для типа long при вводе, при выводе - верхний регистр)

o - восьмеричное целое

u - формат для беззнакового целого

Примечания:

1. вместе с символами форматов могут использоваться модификаторы форматов:

h - короткое целое для целых форматов,

l - двойной длины (для целых и вещественных форматов),

L - для типа long double (для вещественных форматов),

F - дальний указатель для адресного формата,

N - ближний указатель для адресного формата.

2. для печати процента надо записать %%.

Примеры:

1.

...

int a;

...

printf("\nЗначение переменной А=%d",a);

2.

...

int a;

...

printf("\nЗначение переменной А=%5d",a);

/* в этом случае число выводится в пять позиций */

3.

...

int a;

float b;

...

printf("\nЗначение переменной А=%5d B=%f",a,b);

4.

...

int a;

float b;

...

printf("\nЗначение переменной А=%5d B=%10.7f",a,b);

/* переменная b на печати занимает 10 позиций, из них 7 - количество

знаков после десятичной точки */

5.

...

int a;

double b;

char c;

...

printf("\nЗначение переменной А=%5d B=%.7lf Символ C=%c",a,b,c);

/* переменная b выводится с 7-ю знаками после десятичной точки */

Примечания:

а. Модификатор l для переменной типа double может быть опущен.

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

2. Функция ввода ( обычно с клавиатуры )

int scanf(<строка формата>,<адрес объекта>, <адрес объекта>,...);

Строка формата состоит из форматов. Функция возвращает число введенных символов. Форматы те же, что и для оператора printf.

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

Примеры:

1.

...

int a;

...

scanf("%d",&a);

2.

...

long a;

...

scanf("%ld",&a);

3.

...

unsigned int a;

float b;

...

scanf("%u%f",&a,&b);

4.

...

unsigned long a;

double b;

...

scanf("%lu%lf",&a,&b);

5.

...

int a;

double b;

char c;

...

scanf("%d,%lf,%c",&a,&b,&c);

/* в этом случае в качестве разделителей между данными

используется запятая */

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