На этом сайте есть следующий абзац (выделено мной):
- время автоматического хранения. Хранилище выделяется, когда блок, в котором был объявлен объект, вводится и освобождается, когда он завершается любыми средствами (goto, return, end). Одним из исключений является VLA; их хранение выделяется при выполнении декларации, а не в записи блока, и освобождается , когда декларация выходит за пределы области действия, а не после выхода блока (начиная с C99). Если блок вводится рекурсивно, для каждого уровня рекурсии выполняется новое распределение. Все функциональные параметры и объекты нестатического объекта блока имеют такую длительность хранения, а также составные литералы, используемые в объеме блока.
В чем разница между объявлением, выходящим из области видимости, и выводом блока? Можете ли вы привести пример?