русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Структура блоків


Дата додавання: 2014-11-28; переглядів: 936.


C не являється блок-структурованою мовою на зразок Pascal чи інших мов, оскільки функцію не можна означити всередині іншої функції. З іншого боку, змінні можуть бути описані у блок-структурованому вигляді всередині функції. Оголошення змінних (включаючи ініціалізацію) може слідувати за лівою фігурною дужкою, яка започатковує будь-яке складене твердження, а не тільки починає функцію. Змінні, оголошені таким чином, приховано від однаково названих змінних у зовнішніх блоках і залишаються існувати до відповідної правої фігурної дужки. Наприклад, у

if (n > 0) {

int i; /* оголошення нової i */

 

for (i = 0; i < n; i++)

...

}

зоною дії змінної i є «істинне» відгалуження if; це не матиме жодного стосунку до жодного i поза межами цього блока. Автоматичну змінну, оголошену та ініційовану у блоці, ініційовано кожний раз при входженні у цей блок.

Автоматичні змінні, включаючи формальні параметри функцій, також приховані від зовнішніх змінних і функцій з тією самою назвою. Маючи оголошення

int x;

int y;

 

f(double x)

{

double y;

}

змінна x, як параметр функції f типу double, немає нічого спільного з зовнішньою x типу int. Те саме стосується змінної y. Але, загалом, краще уникати назв змінних, що співпадають з назвами з інших зон дії, занадто велика ймовірність плутанини і помилок.


<== попередня лекція | наступна лекція ==>
Статичні змінні | Ініціалізація


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн