Переменные main в C++
Переменная, объявленная в main,
не видна внутри функции. Давайте посмотрим
на примере. Пусть у нас есть
следующая переменная:
int main() {
int num = 1;
return 0;
}
Попытаемся вывести эту переменную внутри функции:
void func() {
std::cout << num << "\n"; // ошибка
}
int main() {
int num = 1;
func();
return 0;
}
Это не то же самое, что переменная файла.
Переменные, определенные снаружи функции
и снаружи main, будут видны внутри
этой функции. Такие переменные называются
глобальными. Посмотрим на примере:
#include <iostream>
int num = 1; // переменная снаружи функции
void func() {
std::cout << num << "\n"; // переменная num видна внутри функции
}
int main() {
func(); // выведет 1
return 0;
}
Учтите, что глобальная переменная будет меняться только в момент вызова функции. Если вызова функции нет - переменная не изменится:
#include <iostream>
int num = 1;
void func() {
num = 2; // меняем внешнюю переменную
std::cout << num << "\n";
}
int main() {
// func(); - закомментировали вызов функции
std::cout << num << "\n"; // выведет 1 - переменная не поменялась
return 0;
}
А сейчас продемонстрируем кодом то, что глобальная переменная поменяется только после вызова функции:
#include <iostream>
int num = 1;
void func() {
num = 2;
}
int main() {
std::cout << num << "\n"; // выведет 1
func(); // меняем переменную
std::cout << num << "\n"; // выведет 2
return 0;
}
Расскажите, каким будет результат выполнения кода:
void func() {
std::cout << aaa << "\n";
}
int main() {
int aaa = 111;
func();
return 0;
}
Определите, не запуская код, что выведется в консоль:
int num = 1;
void func() {
num = 2;
}
int main() {
func();
std::cout << num << "\n";
return 0;
}
Определите, не запуская код, что выведется в консоль:
int num = 1;
void func() {
num = 2;
}
int main() {
std::cout << num << "\n";
return 0;
}