0 / 0 / 0
Регистрация: 25.12.2022
Сообщений: 36
|
|
1 | |
не могу понять чем отличается от глобальной переменной25.02.2023, 22:37. Показов 470. Ответов 4
Метки нет (Все метки)
чем static int n отличается отличается от глобальной переменной в с++
#include <iostream> void print() { static int n {1}; std::cout << "n=" << n << std::endl; n++; } int main() { print(); print(); print(); } в данном коде выводиться: n=1 n=2 n=3 но при этом также можно написать: #include <iostream> int n{ 1 }; void print() { std::cout << "n=" << n << std::endl; n++; } int main() { print(); print(); print(); } Может есть какое-то негласное правило оформление или что раньше писал только на питоне
0
|
25.02.2023, 22:37 | |
Ответы с готовыми решениями:
4
Не могу понять особенности глобальной переменной или указателя Чем отличается нелокальная область видимости от глобальной? Не могу разобраться с использованием глобальной переменной Никак не могу переделать обращение к глобальной переменной из с++ в си |
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
25.02.2023, 22:40 | 2 |
Что ты получить-то хочешь? Static внутри функции будет только в ней видна.
1
|
фрилансер
5846 / 5377 / 1103
Регистрация: 11.10.2019
Сообщений: 14,375
|
|
25.02.2023, 23:27 | 3 |
Сообщение было отмечено vsevolodbeginer как решение
Решение
n будет, по сути, тоже глобальной, но видимость ограничена телом функции print
2
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
25.02.2023, 23:42 | 4 |
vsevolodbeginer,
Для понимания С++ тема storage duration является ключевой: https://en.cppreference.com/w/... e_duration Также ключевым является вопрос областей видимости: https://en.cppreference.com/w/cpp/language/scope
1
|
Вездепух
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,876
|
|
26.02.2023, 00:01 | 5 |
Короткий ответ: физически ничем.
Более длинный ответ: отличия заключаются в том, что 1. Статическая переменная, объявленная локально, видна только внутри той локальной области видимости, где она объявлена. 2. Если эта переменная требует динамической инициализации, то такая инициализация будет выполнена только тогда (и только если) управление пройдет по объявлению этой переменной.
1
|
26.02.2023, 00:01 | |
26.02.2023, 00:01 | |
Помогаю со студенческими работами здесь
5
Не могу получить значение глобальной переменной из функции Чем отличается event от переменной делегата Не могу вывести значение глобальной переменной измененной в во вложенной фукции Чем отличается объявление переменной без и с оператором new? Чем отличается объявление переменной без и с оператором new? Различие глобальной и глобальной статической переменной Найти сумму квадратов четных чисел натурального ряда от 1 до N на С++. Не могу разобраться! Не могу понять в чём ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |