Все КОНСТАНТЫ имеют тип double!
float step_x=0.01, step_y=0.5;
double koord_x, koord_y;
IBM PC | байты | диапазон |
float | 3.4e–38<|x|<3.4e38 | |
double | 1.7e–308<|x|<1.7e308 | |
long double | 1e–3000<|x|<1e3000(приблизительно) |
· Символы (знаки)
Для переменных символьного типа используют служебное слово char (character). Длина переменной – 1 байт. Диапазон значений [–128, 127].
Обратите внимание: тип char может являться как знаковым, так и беззнаковым, в зависимости от конкретного компилятора. Т.е. переменные типа char так же могут быть модифицированы с использованием модификаторов unsigned / signed. Поэтому, чтобы быть уверенным в допустимых значениях, используйте типы signed char и unsigned char.
Пример: char array_name, step;
· Логические данные
В Си нет. Замена – целые. 0 à false, (НЕ)0 à true
2.3 Указатели
Указатели (ссылки) – это переменные, показывающие место или адрес памяти, где расположены другие объекты (переменные, функции и т.п.). Т.к. указатель содержит адрес некоторого объекта, то через него можно обращаться к этому объекту.
У такого выражения есть АДРЕС, ТИП и, разумеется, ЗНАЧЕНИЕ. Но у него нет ИМЕНИ И нет ОБЛАСТИ ВИДИМОСТИ.
Формат: описания переменной указателя
<тип> *<имя> [,*<имя>]...;
Объекты, состоящие из знака* и адреса необходимо объявлять!
Объявление вида: char *d; говорит о том, что значение, записанное по адресу d, имеет тип char.
Пример:
int *kol, *num; Признаком указателя служит *.
double *lenght;
Операции над указателями: над указателями определены две унарные операции: & *
Унарная операция &возвращает адрес объекта в явном виде, поэтому оператор:
y = &x;
присваивает адрес x переменной y. Операцию & нельзя применять к константам и выражениям. Операция применима только к объектам, имеющим имя и размещенным в памяти.
Унарная операция * воспринимает свой операнд как адрес некоторого объекта и использует этот адрес для выборки содержимого. Поэтому, оператор:
z = *y;
присваивает z значение переменной, записанной по адресу y.
int *a; | Объявляет переменную a типа «указатель на int», то есть содержащую адрес некоторого целого значения. |
&x | Возвращает адрес переменной a |
*p | Возвращает "переменную" по адресу, находящемуся в переменной p. |
Пример: int x, y, *px;
px=&x;
y=*px;
Это эквивалентно y = x;
Указатели могут встречаться в выражениях. Если y – указатель на целое ( int *y; ), то *y может появляться там же, где и любая другая переменная, не являющаяся указателем.
Пример:
*y = 7; //заносим 7 в ячейку памяти по адресу y
*x = *x*5;//увеличиваем значение по адресу x в 5 раз
(*z)++; //добавляем 1 к содержимому ячейки памяти с адресом z, круглые скобки обязательны
Дата добавления: 2015-06-10; просмотров: 1057;