Привет, сейчас мы рассмотрим массивы и метки, массивы - это своеобразные стопки в одной переменной, массивы в языке С++ задаются так, сначала вызывается обычная переменная, только со скобками [], внутри которых нужно прописать количество значений в стопке, например, можно написать:
Code
int Massive[5];
В этом коде мы задали количество значений в стопке на 5. Теперь посмотрим на метки, метки задаются переменной, только без всякого оператора, но с двоеточием (:) в конце, например:
Code
GOTO1: SUPER: TEST:
И так далее, переход к меткам осуществляется оператором goto, например, чтобы переместиться к метке SUPER, нам нужно прописать:
Code
goto SUPER;
Всё очень просто. Теперь мы сделаем чтение из значений в массиве, а когда прочитали, переместиться назад, вот и код:
Code
#include <iostream> //Подключаем ввод-вывод using namespace std; //Подключаем пространство имён int main() //Главный класс { SKIP: //Метка setlocale(LC_ALL, "Russian"); //Делаем Русский язык int ms[5]; //Наш массив for (int i = 0; i <= 5; ++i) //Через цикл мы записываем значения в стопку (массив) { cout << "Введите число № " << i << endl; //Смотрим cin >> ms[i]; //Вводим } int ii; //Переменная для прочтения массива cout << "Прочитать массив номер " << endl; //Смотрим cin >> ii; //И записываем нужный нам массив cout << "Число " << ms[ii] << endl; //После этого смотрим, какое там число goto SKIP; //И в конце перемещаемся к метке }
Всё просто, нужно только понять. Пример: СсылкА Спасибо за внимание, с вами был 4aBo Плюсики желательны
Сообщение отредактировал 4aBo - Вторник, 30 Августа 2011, 11:57
это он о том, что стиль использования оператора goto - запрещен как церковью (папа не одобряет goto), так и многими видными программистами типа Дейксты, создателя С++, создателя паскаля, Кнут и т.д. @noTformaT
Ну как бы метки уже не Ъ, им на замену пришли циклы) 4aBo, не обижайся, но ты занимаешься бесполезным делом. В сети очень много книг по С++ в которых все написано, причем написано лучше чем у тебя. ЗЫ. Фраза "вызывается обычная переменная" ввела меня в ступор, ты так можешь запутать новичков.
если он запрещён, тогда зачем же его сделали, логики не вижу. Пользоваться метками по моему удобнее чем циклами, и быстрее
http://ru.wikipedia.org/wiki/GOTO - есть раздел "Критика". Там видно что иногда программа с ГоТо вообще является программой без логики. Иногда его используют, вот поэтому и оставили, но лично я, никогда не видел код в котором используется этот оператор, наверное потомушто долгое время работал на Джаве, где этот оператор выпилили, или потому, что безусловные переходы - понятие весьма странное @noTformaT
Использование goto возможно только в осмысленных задачах. Например, когда break не помогает, либо для истинно безусловных переходов... Не припомню все случаи, когда происходит выигрыш. Для некоторых систем защит выигрыш иногда более очевиден.
4aBo, твой код очень, очень плох. Динамически выделяется память под массив, но ты не выходишь за область его видимости в программе. Тем не менее ты возвращаешься на его объявление. Такие семантические ошибки почти никогда не находятся просто. Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Добавлено (30.08.2011, 15:01) --------------------------------------------- Для справки почитай информацию по статической и динамической памяти и их различие.
Не превращайте форум в чат. Пишите более развернуто и понятно - всё равно вас попросят объяснить подробнее. Алгоритмы, программирование, оптимизация, тестирование, ведение проектов. Ищу художника, дизайнера, тестера, программистов С и С++ Обучаю процессам разработки и программированию.
Добавлено (30.08.2011, 15:11) --------------------------------------------- где? Неужели речь идет о массиве ms?
Добавлено (30.08.2011, 15:14) --------------------------------------------- froex что-то напутал. Наверное он имел ввиду что первый элемент массива есть указатель. Но память там выделяется статически.
Буду третьим, кого заинтересовал вопрос о динамическом выделении памяти.
Стопка - это пять, однозначно
Quote (4aBo)
если он запрещён, тогда зачем же его сделали, логики не вижу.
Его сначала сделали, и лишь спустя долгое время предали анафеме. А оставили ради обратной совместимости, да и иногда он бывает полезен. Всё гениальное просто. И хреново работает.