Urok3_2

Урок 3.2.1. Имена переменных

3.2.1. Имена переменных

Правила формироиания имен переменных очень просты.

Имя переменной (идентификатор переменной) - это буквенно-цифровая последовательность символов алфавита, начинающаяся с буквы.

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

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

Примеры правильных имен:

Salary Summa_A rezistor1_R25 TEXT_NO

alpha Summa_B rezistor2_R26 TEXT_YES

beta DELTA GAMMA _Name_

Недопустимые имена:

4ТАХА - первый символ не буква;

Vatra.34 - содержит недопустимый символ точку;

сhar - имя совпадает с ключевым словом;

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

Следовательно, если переменная будет принимать значения, например, констант типа int, то для нее необходимо зарезервировать 4 байта, а если переменная будет принимать значения констант типа double, то для нее необходимо выделить 8 байтов и т.д.

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

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

Урок 3.2.3. Инициализация переменных

3.2.3. Инициализация переменных

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

<имя>=<константа>

или

<имя>=<константное_выражение>

или

<имя>=<имя>

где
<имя> - имя переменной, которой компилятором должно быть установлено начальное значение до выполнения программы;  <константа> - определяет конкретное устанавливаемое значение;  <константное выражение> – выражение, состоящее только из констант и знаков операций, например, 60+60.

Константные выражения в Си вычисляются во время компиляции, а не во время выполнения программы, поэтому их можно использовать везде, где может стоять константа. Примеры операторов описания с инициализацией переменных:

char backslach = '\\', litera = 'T';
int cows = 32, goats = 14;
float alfa, beta, gamma=1.7e-12;

Обратим внимание на то, что в последнем операторе описания инициализирована только переменная gamma, хотя с первого взгляда может показаться, что все три. Поэтому лучше избегать смешивания инициализируемых и неинициализируемых переменных в одном операторе описания. Кроме того, желательно начальное значение переменной записывать константой соответствующего типа, хотя Си допускает и несовпадение типов. Например, можно допустить такой оператор описания:

int cows = 3.2e+1, goats = 1.4e+1;

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

Рассмотрим еще несколько примеров инициализации переменных. В комментариях указываются случаи когда форма инициализации допускается только в языке C++.
int i = 5;
int i(5);                //только в с++
int a = abs(-3);    //используется математическая функция abs
double price = 109.99, discount = 0.16;
double sale_price = price * discount;
double sale_price (price * discount);       //только в с++
int val = get_value();                 //используется пользовательская функция,
//возвращающая число

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

Урок 3.2.2. Описание переменных

3.2.2. Описание переменных

Все переменные программы должны быть описаны. Описание переменных обычно осуществляется в начале программы с помощью операторов описания. Остановимся на неформальном понятии оператора.

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

Каждый оператор имеет определенный синтаксис и семантику Синтаксис отражает способ записи правильных конструкций оператора, а семантика - это описание тех действий, которые осуществляет оператор. В дальнейшем в тексте пособия синтаксис и семантику операторов Си будем давать путем представления общих форм записи и словесным описанием действий. Оператор описания переменных имеет следующую общую форму записи:

<тип> <список имен переменных>;

где <тип> определяет тип значений, которые могут принимать переменные списка. В качестве <тип> используется одно из ключевых слов int, float, double или char;

<список имен переменных> - это перечисление имен переменных, отделенных друг от друга запятой;

Точка с запятой является признаком конца оператора. Между ключевым словом, определяющим тип переменных и списком их имен должен быть хотя бы один пробел. Операторы описания отрабатываются на этапе компиляции программы и содержат информацию для определения интерпретации каждого имени переменной. Например, в программе имеются следующие операторы описания:

float salary,summa,itog;

int time,count;

char znak,litera;

Эти операторы содержат информацию для компилятора о том, что переменные salary, summa и itog будут принимать вещественные значения типа float в диапазоне от 3.4е-38 до 3.4+38 и для каждой из этих переменных требуется область памяти 4 байта.

Каждой из переменных time, count требуется память 4 байта и эту память следует интерпретировать как целые числа типа int.

Значения переменных с именами znak, litera следует интерпретировать как символьные, т.е. целое число однобайтовой области памяти этих переменных рассматриваются как код соответствующего символа ASCII. Одно описание можно разбить на несколько описаний, например, с целью комментирования физического смысла переменных программы. Операторы:

 

float salary;      /*зарплата в месяц*/

float summa;   /*зарплата в год*/

float itog;          /*зарплата к выдаче*/

эквивалентны первому оператору вышеприведенных примеров.

 

Урок 3.2.4. Модификаторы переменных

3.2.4. Модификаторы переменных Читать далее

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов