Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Функции и пе­ременные, для которых указан класс памяти static, видимы лишь от точки описания до конца файла. Если пользователь не указал начального зна­чения, то все статические переменные, как и внешние, инициируются значением нуль. Инициирование струк­турных статических переменных выполняется по тем же правилам, что и внешних. Если статическая переменная описана внутри фун­к­ции, то первый раз она инициируется при входе в блок функции. Значение переменной сохра­няет­ся от одного вызова функции до другого. Таким образом, статические переменные можно использовать для хра­не­ния значений внутри функции на протяжении времени работы программы, при­чем такие переменные будут невидимы вне файла, где они опреде­ляют­ся.

Внешние переменные

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

Операции

Арифметические операции

К арифметическим операциям относятся: сложение (+), вычитание (-), деление (/), умножение (*) и оста­ток от деления (%). Остаток не опре­де­лен для ве­щественных переменных. Целочисленные сложение и вычитание выпол­няются без учета переполнения.

Операция поразрядного сдвига целого числа E влево или вправо на E2 разрядов имеет вид соответственно: E<<E2 или E>>E2.

Операции отношения

В языке определены следующие операции отношения: ра­вен­ство (==, два знака равества), неравенство (!=), меньше (<), меньше или равно (<=), больше (>), больше или равно (>=).

Все перечисленные операции вырабатывают результат типа int (в числовых выражениях) или bool (в логических выражениях). Если данное отношение между операндами истин­но, то значение этого целого - единица (true), а если отноше­ние ложно, то нуль (false).

Все операции типа «больше - меньше» имеют равный прио­ритет, причем он выше, чем приоритет операций == и!=. Приоритет операции присваивания ниже приоритета всех операций отношения. Для задания правильного порядка вы­числений используются скобки.

 

Логические операции

Допускаютсяследующие логические операции: && (И), || (Или, две верти­каль­ные черточки),! (отрицание, восклицательный знак).

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

Логические операции имеют самый низкий приоритет.

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

Для целочисленных переменных существуют операции поразрядного И (&), ИЛИ (^), исключающего ИЛИ (|, вертикальная черта), отрицания (~, тильда).

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

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

Пример: а = (b = c) * d; // в начале вычисляется b = c, далее a=b*d.

Пример использования многократного при­сваивания: a=b=c=d=e=0.

Операции a+=b, a-=b, a*=b и a/=b являются укороченной фор­мой записи, соответственно: а = а + b; а = а - b; a= а* b; а = а/b.

Префиксные и постфиксные операции «++» (два плюса) и «–» (два минуса) исполь­зуют для уве­ли­че­ния (инкремент) и уменьшения (декре­мент) на единицу значения пере­мен­ной до использования переменной в выражении, если операция указана пе­ред именем переменной; если операция указана после имени перемен­ной, то после использования пере­мен­ной соответственно.

Если тип левой части присваивания отличается от типа правой части, то тип правой части приводится к типу левой.

Пример вычисления выражения и вывода его значения (50):

int main(int argc, char **argv) { int a,b,c=3,d=4,f=3,g,h=5,z=6,i;

a=z+(b=c*d*f +(g= h +(i=3))); printf («%d\n», a); getch(); return 0; }

Операцию sizeof (размер) можно применить к константе, типу или переменной. В результате будет получено число байтов, занимаемых операндом. Если операндом является тип, то такой операнд следует заключить в круглые скобки. Если операнд - переменная, то скобки можно опустить.

Операция «запятая» применяется для связывания меж­ду собой выражений. Список выражений, разделенный запя­тыми, трактуется как единое выражение и вычисляется слева направо.

Операторы

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...