В языке Си имеет очень важное значение имеет место в программе, в котором происходит объявление переменной. Это определяет область существования переменной (эту область называют областью видимости). Программа не будет компилироваться, если не описать все используемые переменные.
Различают локальные и глобальные переменные. Локальные переменные существуют и в теле функции или оператора управления. Локальные переменные на языке Си (но не С++) объявляются в начале блока – после открывающей фигурной скобки. Только после этого можно использовать их имена в выражениях и операторах. Область видимости локальной переменной – до соответствующей закрывающей фигурной скобки.
Глобальные переменные объявляются вне функций и существуют от точки объявления до конца программы. Соответственно, значение глобальной переменной можно использовать во любом месте программы.
Рассмотрим пример
#include <stdio.h>
int i=1; /* объявление и инициализация глобальной переменной */
float f; /* объявление глобальной переменной */
void fun(void); /* прототип функции пользователя */
void main(void)
{
int k,n; /* объявление локальных переменных */
float g1; /* объявление локальной переменной */
...
}
void fun(void) /* описание функции пользователя */
{
int j=5; /* объявление локальной переменной */
char ch; /* объявление локальной переменной */
...
}
В программе объявлены глобальные и локальные переменные, а также помимо функции main() используется подпрограмма fun(). Глобальные переменные i и f можно использовать в обеих функциях. Значения локальных переменных r, n и g1 можно использовать только в теле функции main(), а переменных j и ch – в теле функции fun().