Курс — «Программирование на C для начинающих». Функции. #14 Локальные и глобальные переменные
Здравствуйте, дорогие друзья.
Переменные в языке программирования C могут быть локальными или глобальными. Локальные переменные объявляются внутри функций и доступны только внутри этих функций. Глобальные переменные объявляются вне функций и доступны во всей программе. В этом разделе мы рассмотрим различия между локальными и глобальными переменными, а также их области видимости и время жизни.
Локальные переменные
Локальные переменные объявляются внутри функций и доступны только внутри этих функций. Они создаются при входе в функцию и уничтожаются при выходе из нее. Локальные переменные имеют ограниченную область видимости и время жизни.
Пример использования локальных переменных:
1 2 3 4 5 6 7 8 9 10 11 |
#include <stdio.h> void localFunction() { int localVar = 10; // Локальная переменная printf("Local variable: %d\n", localVar); } int main() { localFunction(); return 0; } |
В этом примере переменная localVar
объявлена внутри функции localFunction
и доступна только внутри этой функции. При выходе из функции localFunction
переменная localVar
уничтожается.
Глобальные переменные
Глобальные переменные объявляются вне функций и доступны во всей программе. Они создаются при запуске программы и уничтожаются при ее завершении. Глобальные переменные имеют глобальную область видимости и время жизни.
Пример использования глобальных переменных:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <stdio.h> int globalVar = 20; // Глобальная переменная void globalFunction() { printf("Global variable: %d\n", globalVar); } int main() { globalFunction(); printf("Global variable in main: %d\n", globalVar); return 0; } |
В этом примере переменная globalVar
объявлена вне функций и доступна во всей программе. Она может быть использована как в функции globalFunction
, так и в функции main
.
Область видимости переменных
Область видимости переменной определяет, где в программе эта переменная доступна. Локальные переменные имеют ограниченную область видимости и доступны только внутри функций, в которых они объявлены. Глобальные переменные имеют глобальную область видимости и доступны во всей программе.
Пример области видимости переменных:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <stdio.h> int globalVar = 30; // Глобальная переменная void scopeFunction() { int localVar = 40; // Локальная переменная printf("Local variable in scopeFunction: %d\n", localVar); printf("Global variable in scopeFunction: %d\n", globalVar); } int main() { int localVar = 50; // Локальная переменная printf("Local variable in main: %d\n", localVar); printf("Global variable in main: %d\n", globalVar); scopeFunction(); return 0; } |
В этом примере локальные переменные localVar
в функциях main
и scopeFunction
имеют разные области видимости и не конфликтуют друг с другом. Глобальная переменная globalVar
доступна как в функции main
, так и в функции scopeFunction
.
Время жизни переменных
Время жизни переменной определяет, сколько времени переменная существует в памяти. Локальные переменные создаются при входе в функцию и уничтожаются при выходе из нее. Глобальные переменные создаются при запуске программы и уничтожаются при ее завершении.
Пример времени жизни переменных:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <stdio.h> int globalVar = 60; // Глобальная переменная void lifetimeFunction() { int localVar = 70; // Локальная переменная printf("Local variable in lifetimeFunction: %d\n", localVar); } int main() { lifetimeFunction(); // localVar недоступна здесь, так как она была уничтожена при выходе из lifetimeFunction printf("Global variable in main: %d\n", globalVar); return 0; } |
В этом примере локальная переменная localVar
создается при входе в функцию lifetimeFunction
и уничтожается при выходе из нее. Глобальная переменная globalVar
доступна во всей программе и существует до завершения программы.
Локальные и глобальные переменные являются важными элементами языка программирования C. Локальные переменные имеют ограниченную область видимости и время жизни, тогда как глобальные переменные имеют глобальную область видимости и время жизни. Понимание различий между локальными и глобальными переменными, а также их областей видимости и времени жизни, является ключевым навыком для начинающих программистов.
На этом все. Всем хорошего дня!