>по сути там не должно сохраняться i = 5, по простой причине, что данная переменная задействована. Какова правильная реализация в Си, не знаю. В Паскале не сохранится.
Видимость для переменных: ты можешь многократно объявлять переменную i.
Локальная i не изменит приватную и глобальную.
Локальная i цикла не должна менять переменную вне ее.
А в паскале используется объявленная переменная. Она меняется, но результат использовать нельзя.

>Sharfik, зачастую нужен поиск не по элементу, а нужен элемент, на котором поиск был остановлен.
Собственно я так и делал.
Но в данном случае мне каждую строку в массиве нужно разобрать на составляющие и по комбинации этих значений определить соответствие.
А если я уже разобрал строку и сохранил их в переменных, то зачем мне по ее номеру опять делать разбор, достаточно указать что найдена.
Я сразу сказал, что переменная True/False решает эту проблему.
Нужно только ко всем break добавить ей True (аналогично можно ей присваивать номер в массиве).
Вопрос стоял в том: почему результат i нельзя использовать, а на С не было проблем.