Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операторы объявления переменных

Комментарии

Наряду со стандартными ограничителями комментария (/* и */) в программе C++ можно задать комментарий-строку двумя символами //. Все символы, следующие за символами // до конца строки, являются частью комментария и пропускаются компилятором.

void main () // это комментарий-строка {

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

// операторы...

}

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

Примечание

Блок – фрагмент кода, ограниченный символами { и }. На переменную, определенную внутри блока, можно ссылаться только внутри этого или внутри вложенного блоков (если она не скрыта переменной с таким же именем внутри вложенного блока). Таким образом, блок определяет область видимости переменной.

В языке C++ код можно сделать более легким для чтения и сопровождения, помещая определение переменной непосредственно перед кодом, который ее использует, например:

void main() {

// другие операторы,..

 

int Count =0;

while (++Count <= 100)

{

// операторы цикла...

}

// другие операторы...

}

Переменную можно объявить даже внутри цикла for.

// другие операторы …for (int i = 0; i < MAXLINES; ++i) {

// другие операторы...

 

int Length = GetLineLength (i);

if (Length = 0) break;

// другие операторы...

} if (i < MAXLINES)

// встретилась строка длиной О

В приведенном коде считается, что объявление счетчика цикла i встречается за пределами блока, следующего непосредственно за оператором for. Следовательно, ссылаться на переменную счетчика можно и после блока for, а переменная Length, объявленная внутри блока for, доступна только внутри этого блока.

Если объявление включает инициализацию, элемент данных инициализируется при выполнении оператора объявления. Так, в приведенном примере переменная i создается и инициализируется однократно, когда программное управление достигает оператора for; а переменная Length создается и инициализируется на каждой итерации цикла for.

Примечание

Если локальная переменная объявлена как статическая (ключевое слово static), то она создается и инициализируется только один раз, когда программное управление впервые достигает оператора объявления переменной.

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

switch (Code) {

case 1:

//...

break;

 

case 2:

int Count =0; // ошибка

//...

break;

 

case 3:

//...

break;

}

Компилятор генерирует ошибку по следующей причине: переменная Count инициализируется только тогда, когда управление достигает ветви case 2 оператора switch. Если управление передается ветви case 3, содержащей обращение к переменной Count, то она не будет инициализирована. Ветвь case 3 имеет доступ к переменной Count, так как объявление переменной предшествует данной ветви внутри того же блока. Компилятор сгенерирует ошибку, даже если код в этой ветви действительно не использует переменную Count. Важен факт, что использование возможно. Для исправления ошибки нужно поместить код ветви case 2 внутри ее собственного блока, например:

case 2:

{

int Count = 0;

//...

break;

}

В таком варианте оператора switch ссылаться на переменную Count можно только внутри ветви case 2. В противном случае можно убрать инициализацию из объявления и присвоить переменной Count начальное значение.

case 2:

int Count;

Count = 0;

//...

break;

<== предыдущая лекция | следующая лекция ==>
Основные принципы ООП | Встроенные функции
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 1265; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.