Инициализация переменных. Отличие инициализации от присваивания

(лекция 8)

Инициализация - это присваивание переменной (объекту) начального значения.

В яз. СИ большинство объектов может быть явно или неявно инициализировано в момент их объявления с помощью указания после их имени знака равенства и константного выражения.

Глобальные (внешние) и статические объекты (extern и static) инициализируются однократно в момент компиляции значением константного выражения. Автоматические (auto) и регистровые (register) объекты инициализируются значением любого выражения в процессе исполнения программы при каждом входе в блок, в котором они определены.

Другими словами, объекты инициализируются сразу же после выделения под них памяти.

Явная инициализация производится оператором присвоения, который записывает значение выражения во вновь созданную переменную.

float pi=22.0/7.0;

static int counter=0;

char bell='\007'; // Записываем ОДИН символ с кодом 7

long max_size=512L*512L;

main()

{

int n=22;

int den=7;

static float pi=n/den; // Недопустимо – это не константное

// выражение.

float pi2=n/den; // Допустимо, т.к. класс памяти – auto

}

Следующие правила описывают процесс инициализации:

1. Глобальные и статические переменные всегда инициализируются, и если это не сделано явно, то они инициализируются нулевым значением. Инициализация для них выполняется один раз перед началом программы. Если переменная целая, то ее начальное значение=0, если символьная, то "\0", если это число с плавающей точкой, то 0.0. Эти объекты могут быть явно инициированы только значением константного выражения.

2. В объявлениях с классом памяти extern не допускается явная инициализация, так как эти объявления ссылаются на уже существующие и определенные ранее переменные.

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

3. Инициализация переменных с классом памяти auto или register выполняется всякий раз при входе в блок, в котором они объявлены. Переменные с этими классами памяти автоматически не инициализируется. Они могут быть проинициализированы явно значением любого выражения при объявлении.

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

4. Указатели инициализируются аналогично остальным переменным. При этом возможно использование оператора взятия адреса & для присвоения указателю адреса какой-либо переменной.

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

main()

{

static char i;

char *p=&i; // верно

static *ps=&i; // верно

}

Адрес же переменной с классом памяти auto таковым не является, и может быть записан при инициализации только в указатель с классом памяти auto.

main()

{

char i;

char *p=&i; // верно

static *ps=&i; //неверно

}

К переменным с классом памяти register операция взятия адреса & неприменима.

MS Excel: формулы, стандартные функции. Построение графиков.

Создание и удаление формулы

Инициализация переменных. Отличие инициализации от присваивания - student2.ru Скрыть все

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

С помощью констант (Константа. Постоянное (не вычисляемое) значение. Например, число 210 и текст «Квартальная премия» являются константами. Формула и результат вычисления формулы константами не являются.) и операторов (Оператор. Знак или символ, задающий тип вычисления в выражении. Существуют математические, логические операторы, операторы сравнения и ссылок.) вычисления можно создать простую формулу. Например, формула =5+2*3 позволяет умножить два числа, а затем прибавить число к результату. В Microsoft Office Excel используется обычный порядок математических операций. В предыдущем примере операция умножения (2*3) выполняется в первую очередь, а затем к результату умножения прибавляется число 5.

Также формулу можно создать с помощью функции (Функция. Стандартная формула, которая возвращает результат выполнения определенных действий над значениями, выступающими в качестве аргументов. Функции позволяют упростить формулы в ячейках листа, особенно, если они длинные или сложные.). Например, в формулах =СУММ(A1:A2) и СУММ(A1,A2) для сложения значений в ячейках A1 и A2 используется функция СУММ.

В зависимости от типа создаваемой формулы она может содержать некоторые из перечисленных ниже частей или все из них.

Функции. Любая функция, например ПИ(), всегда начинается со знака равенства (=). В круглые скобки вводятся аргументы (Аргумент. Значения, используемые функцией для выполнения операций или вычислений. Тип аргумента, используемого функцией, зависит от конкретной функции. Обычно аргументы, используемые функциями, являются числами, текстом, ссылками на ячейки и именами.) функции. Каждая функция имеет собственный синтаксис аргументов.

Инициализация переменных. Отличие инициализации от присваивания - student2.ru Ссылки на ячейки. Включив в формулу ссылку на ячейку, можно сослаться на данные в ячейках на листе. Например, ссылка на ячейку A2 возвращает значение этой ячейки или использует это значение для вычисления.

Инициализация переменных. Отличие инициализации от присваивания - student2.ru Константы. Также непосредственно в формулу можно вводить константы, такие как числа (например, 2) или текстовые значения.

Инициализация переменных. Отличие инициализации от присваивания - student2.ru Операторы. Операторы представляют собой символы, которые используются для указания типа вычисления, которое необходимо выполнить с помощью формулы. Например, оператор ^ (крышка) возводит число в степень, а оператор * (звездочка) перемножает числа

Для достижения желаемого результата вычисления можно использовать одну функцию, вложенные функции или массивы (Массив. Объект, используемый для получения нескольких значений в результате вычисления одной формулы или для работы с набором аргументов, расположенных в различных ячейках и сгруппированных по строкам или столбцам. Диапазон массива использует общую формулу; константа массива представляет собой группу констант, используемых в качестве аргументов.), которые позволяют получать один или несколько результатов. Если формула не нужна, ее можно удалить.

Наши рекомендации