Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_Shpory_moi.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.15 Mб
Скачать

35 Операция присваивания. Сокращенная запись операции присваивания.

Операция присваивания

Формат операции присваивания:

< ID > = <выражение>; Присваивание значения в языке Cи в отличие от традиционной интерпретации рассматривается как выражение, имеющее значение левого операнда после присваивания. Таким образом, присваивание может включать несколько операций присваивания, изменяя значения нескольких операндов, например:

int i, j, k;

float x, y, z;

...

i = j = k = 0; ↔ k = 0, j = k, i = j;

x = i+(y = 3) - (z = 0); ↔ z = 0, y = 3, x = i + y - z;

Внимание! Левым операндом операции присваивания может быть только именованная либо косвенно адресуемая указателем переменная.

Примеры недопустимых выражений:

а) присваивание константе: 2 = x+y;

б) присваивание функции: getch() = i;

в) присваивание результату операции: (i+1) = 2+y;

Сокращенная запись операции присваивания

В языке Cи используются два вида сокращений записи операции

присваивания: a) вместо записи v = v # e; где # - арифметическая операция (операция над битовым представлением операндов), рекомендуется использовать запись v #= e; например, i = i + 2; ↔ i += 2; (знаки операций без пробелов);

б) вместо записи x = x # 1; где # - символы, обозначающие операцию инкремента (+), либо декре-

мента (-), x - целочисленная переменная (переменная-указатель), реко-

мендуется использовать запись: ##x; - префиксную или x##; - постфиксную.

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

затем будет использовано в выражении; в постфиксной форме (x##) сначала значение используется в выражении, а затем изменяется на 1.

36 Стандартная библиотека языка Си. Математические функции.

Стандартная библиотека языка Си

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

Часть библиотек стандартизована и поставляется с компилятором.

В стандартную библиотеку входят функции, макросы, глобальные константы. Это файлы с расширением *.h, хранящиеся в папке include.

Стандартные математические функции

Математические функции языка Си декларированы в файлах math.h и stdlib.h.

В большинстве приведенных здесь функций аргументы x,y и результат выполнения имеют тип double. Аргументы тригонометрических функций должны быть заданы в радианах (2π радиан = 3600),

37 Строки в языке Си. Функции работы со строками.

Строки в языке Си

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

собой последовательность (одномерный массив) из одного или более символов, последним из которых

является нулевой символ таблицы ASCII '\0'. Это единственный вид строки, определенный в C.

Язык C поддерживает строковые константы, называемые строковыми литералами. Строковый литерал – это любая последовательность символов, заключенная в двойные кавычки ("…"). В конце литерала компилятор автоматически добавляет нулевой символ.

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

Например, 'c' – символьная константа, а "c" – строковая константа.

Литерал можно задать с помощью директивы препроцессора define:

# define STR "…"

Строковая переменная может быть сформирована как одномерный массив типа char либо с помощью указателя на переменную типа char. Количество символов в массиве (объем выделяемой памяти) должно быть не меньше, чем количество символов в строке плюс один символ для хранения символа нуль.

Функции работы состроками

Язык C определяет строки как особый вид массивов, позволяя осуществлять их ввод/вывод как единого целого. Встроенные средства обработки строк в языке C отсутствуют, но строки настолько широко используются в программировании, что большинство компиляторов имеет специальные функции для работы со строками. Эти функции входят в состав заголовочного файла <string.h>.

Отметим ряд основных функций.

Определение длины строки:

strlen (S1) – длина строки S1, исключая нулевой символ.

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

strcpy (S1,S2), где S1 – указатель, S2 – указатель или константа.

Строка S2 копируется посимвольно в строку S1. Необходимо иметь в виду, что размер строк компилятором не сравнивается, и это возлагается на программиста.

Слияние строк (конкатенация):

strcat (S1,S2).

К концу строки S1 подсоединяется строка S2. Нулевой символ в конце строки S1 отбрасывается. Компилятор не следит, хватит ли в S1 места для S1 плюс S2.

Сравнение строк:

strcmp (S1,S2).

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

· возвращается нуль, если строки одинаковы, и значение отличное от нуля, если строки не совпадают;

· отрицательное число, если строка S1 «меньше» строки S2 с точки зрения алфавита (ASCII-кодов), и положительное, если «больше».

Данная функция используется для упорядочения по какому-либо критерию.

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