ЗАМЕЧАНИЕ
Прописные и строчные буквы в языке Си различаются, то есть NAME, Name и
name —
три разных идентификатора.
Имена объектов в программе не должны совпадать с операторами языка и
названиями стандартных функций.
Все переменные в программе должны относиться к тому или иному типу
данных. Базовыми типами данных в языке Си являются следующие:
int
—
целое число;
float
—
число с дробной частью (с плавающей точкой);
char
—
одиночный символ;
double
—
вещественное число двойной точности.
ЗАМЕЧАНИЕ
В языке программирования Си нет выделенного логического типа данных,
ЛОЖЬЮ считается нулевое значение переменной, например, целого типа, а
ИСТИНОЙ — любое ненулевое значение.
Перед названием типа могут встречаться так называемые модификаторы.
Например, unsigned для чисел означает, что данное число не может
хранить отрицательное значение: если при 16-разрядной архитектуре
компьютера тип int может хранить числа от –32 767 до 32 768, то
unsigned
int —
от 0 до 65 535. При 32-разрядной архитектуре
указанные значения удваиваются. Вообще говоря, размер выделяемой
памяти для переменных того или иного типа в языке Си зависит от
конкретного используемого компилятора.
Имеются также модификаторы short и long, указывающие,
соответственно, на короткое (занимающее меньше памяти) и длинное (для
хранения больших значений) целое.
При этом можно просто писать short и long вместо short int и long
int, unsigned
и signed вместо unsigned int и signed int
.
Каждая используемая в программе переменная должна быть
предварительно объявлена с указанием типа, и в дальнейшем она может
использоваться для хранения значений только указанного типа. Иными
84
словами, язык программирования Си является языком со статической
типизацией. Допустимо объявлять переменные одного типа как через
запятую в одной строке, так и в разных строках, например:
int a,b,c;
int x;
char sym, A21;
Важным понятием языков программирования является преобразование
типов. Так, если в выражении на Си появляются операнды различных
типов, они преобразуются к некоторому общему типу, при этом к каждому
операнду применяется следующая последовательность правил:
1)
Если один из операторов имеет тип
long double
, остальные также
преобразуются к данному типу;
2)
В противном случае, если один из операндов в выражении имеет тип
double
, остальные преобразуются к данному типу;
3)
В противном случае, если один из операндов имеет тип
float
,
остальные преобразуются к данному типу;
4)
В противном случае, если один из операндов имеет тип
unsigned
long
, остальные преобразуются к данному типу;
5)
В противном случае, если один из операндов имеет тип
long
,
остальные преобразуются к данному типу;
6)
В противном случае, если один из операндов имеет тип
unsigned
,
остальные преобразуются к данному типу;
7)
В противном случае все операнды преобразуются к типу
int
, при
этом char преобразуется в
int
со знаком,
unsigned char
-
в
int
, у
которого старший байт всегда нулевой,
signed char
–
в
int
, у
которого знаковый бит передается из
char
, тип
short
–
в
int
(знаковый или беззнаковый).
Кроме того, возможно явное (задаваемое программистом) преобразование
типа, выполняемое, например, следующим образом:
X = y + (float)z;
Здесь перед вычислениями переменная z будет приведена к типу «число с
плавающей точкой».
Другим важнейшим понятием языка являются выражения, широко
распространенные в Си. Они состоят из операндов (переменные,
константы, числа), соединенных знаками операций (сложения, умножения
и др.). Порядок выполнения операций определяется их приоритетом и
круглыми скобками, используемыми при записи выражений. Выражения
широко используются в операторах присваивания, являющихся
краеугольным камнем императивного программирования. В языке Си для
записи присваивания используется одиночный символ равенства,
85
например:
x=a+b;
Удобной особенностью Си является то, что существует удобная
сокращенная запись для присваивания одного и того же значения группе
переменных, например:
f=b=c=d=100;
Арифметические операции в языке Си записываются следующим образом:
+
—
сложение;
-
—
вычитание и унарный минус;
*
—
умножение;
/
—
деление;
%
—
остаток от деления.
Логические операции в языке Си, используемые при записи условий:
&&
—
логическое И;
||
—
логическое ИЛИ;
!
—
логическое НЕ;
Знаки сравнения:
<
—
меньше;
>
—
больше;
==
—
равно;
<=
—
меньше или равно;
>=
—
больше или равно;
!=
—
не равно.
Достарыңызбен бөлісу: |