Переменные и простые типы данных
Любая последовательность букв и цифр, начинающаяся не с цифры, может использоваться в качестве имени переменной. Подчеркивание “_” также может входить в идентификатор: inter_data, quick_Sort, fastDictionary
Строчные и прописные буквы считаются различными. В старых версиях языка имеют значения только первые 8 литер. Внешние идентификаторы могут быть еще короче: - ограничения зависят от типа загрузчика. Современные версии не ограничивают длину идентификатора.
Служебные слова int, char, float,…, auto, if, goto, … , entry и т.д. являются зарезервированными и не могут применяться в качестве имен переменных или функций, определяемых пользователем. (В этом, например, отличие от PL/1).
Константы
Любая целочисленная константа считается восьмеричной, если она начинается с 0 (нуля), иначе – это десятичная константа. Если последовательность начинается с пары 0х или 0Х, то константа – шестнадцатеричная. Эти константы включают литеры: 0|1|…|9|A|B|…|F или a|b|…|f. В зависимости от представления в машине константы могут быть повышенной (long) или обычной точности. Явная длинная целочисленная константа, повышенной точности может задаваться буквой l или L в конце (но это для восьмеричных, десятичных целых и шестнадцатеричных).
Пример
0XafL – шестнадцатеричная константа af повышенной точности.
Повышенная точность обычно – это в два раза большее количество байт. Например, на ЭВМ СМ 3, 4 обычная точность – это два байта, повышенная – 4 байта.
Символьные константы – это символ в одиночных кавычках, например, ‘X’. Символьные константы, не имеющие графического представления, задаются комбинациями символов в одинарных кавычках.
символы | смысл |
‘\n’ | новая строчка |
‘\t’ | табуляция |
‘\b’ | шаг назад |
‘\r’ | возврат каретки в начало строки |
‘\f’ | авторегистр |
‘\\’ | обратная черта \ |
‘\’’ | одиночная кавычка ‘ |
‘\ddd’ | кодовое представление символа, где d – пусто или восьмеричные цифры, задающие ASCII – код символа |
Специальный случай – ‘\0’ представляет нули в восьми разрядах.
Примеры
‘\101’ - символ’A’
‘\100’ - символ ‘@’
‘\70’ - символ ‘8’
‘\070’ - символ ‘8’
Константы с плавающей точкой содержат целую часть, десятичную точку, дробную часть, символы е или Е и целый показатель (экспоненту), возможно со знаком.
Примеры
1.3е-4, 14., .01, 15Е+3
Любая константа с плавающей точкой считается значением с двойной точностью, а символьная константа преобразуется в арифметических выражениях к целому типу.
В соответствии с введенными типами константы и переменные в программе могут декларироваться типами:
char - символ,
short - короткое целое,
long - длинное целое (повышенной точности),
double - с плавающей точкой двойной точности,
int - целое, обычной точности,
float - плавающее, обычной точности.
Все переменные должны до их использования в программах декларироваться в следующем виде: «тип список -имен ;».
Примеры
int i,j;
float a,data;
Наряду с описанием переменных программа может содержать определения символических констант, что в общем случае служит более наглядному представлению алгоритма и повышает мобильность программы.
Пример
#define LOWER 0 /* нижний предел */
#define EOF -1 /* метка конца файла */
Здесь #define - утверждение текстового препроцессора. Эти строки удаляются препроцессором из текста и значения 0 и -1 заносятся во внутренние таблицы как значения констант LOWER и EOF. Если эти имена появляются в основном тексте программы, то они замещаются соответствующими значениями 0 и -1.
Пример
В программе осуществляется перевод температур в градусах по Фаренгейту в градусы по Цельсию и распечатка полученной таблицы. Для перевода используется формула С=(5/9)(F-32).Диапазон 0-300 F c шагом 20.
/* печать таблицы Фаренгейт – Цельсий для f=0,20..300 */
……………………………………………………..
# define LOWER 0 /* нижний предел */
# define UPPER 300 /* верхний предел}
#define STEP 20 /* шаг*/
main ( )
{
int fahr;
for( fahr=LOWER;fahr<=UPPER;fahr+=STEP )
printf (“%4d%6.1 f\n ”,fahr,(5.0/9.0)*(fahr-32));
return 0; //или exit(0);
}
Заданы символьные константы LOWER , UPPER, STEP. fahr - переменная целого типа (int). Oператор цикла for в скобках содержит три выражения, перечисленных через точку с запятой:
fahr =LOWER - инициирует начальное значение,
fahr<=UPPER – проверка условия продолжения цикла, если условие выполняется, то цикл будет продолжен.
printf(…); - единственный оператор обращения к функции, представляющей тело цикла.
Перечислены три аргумента, первый из которых строка, интерпретируемая как строка форматирования:
%4d – 4 позиции для размещения значения fahr в виде целого десятичного, затем пробел,
%6.1f – 6 позиций для значения выражения (5.0/9.0)*(fahr-32) в виде значения с плавающей точкой. Одна позиция отводится под символ после точки.
Вместо for –цикла можно применить цикл while:
Тогда в этой же программе вместо for- цикла можно записать:
fahr = LOWER;
while (fahr<=UPPER)
{
printf (“%4d%6.1f \n ”,fahr,(5.0/9.0)*(fahr-32));
fahr=fahr+STEP;
}
Здесь скобки {…} определяют составной оператор, являющийся телом цикла.
Следующая простая программа считает вводимые символы.
Пример
#include …
void main( ) /*подсчет символов*/
{
long nc=0;
while (getchar( ) != EOF) ++nc;
printf(“%ld\n”,nc);
}
Если указан тип функции void, то оператор «return выражение» не используется, - можно применить просто «return».
В данном примере – переменная nc – типа int long , причем вначале она инициируется нулем. Операция «++» обозначает автоикремент, т.е увеличение значения переменной nc на единицу. В Си имеется и операция автодекремент «--», т.е. уменьшение на 1 значения переменной, причем эти операции могут быть как и префиксными, так и постфиксными со своими особенностями выполнения. Формат «%ld» указывает, что необходимо печатать целое десятичное типа long (повышенной точности) и оно будет занимать столько позиций, сколько содержится в нем значащих цифр, а «\n указывает перевод строки (конец записи).
Дата добавления: 2016-05-26; просмотров: 1275;