С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.12.2022
Сообщений: 36
1

не могу понять чем отличается от глобальной переменной

25.02.2023, 22:37. Показов 470. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
чем 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
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2023, 22:37
Ответы с готовыми решениями:

Не могу понять особенности глобальной переменной или указателя
Помогите новичку понять , как можно из локального ,название открытия файла( file1 = open(of,&quot;r&quot;) )...

Чем отличается нелокальная область видимости от глобальной?
def scope_test(): def do_local(): spam = &quot;локальный спам&quot; def do_nonlocal(): ...

Не могу разобраться с использованием глобальной переменной
Есть два класса Class1 и Class2 соответственно. В Class1 объявляю глобальную переменную и пытаюсь...

Никак не могу переделать обращение к глобальной переменной из с++ в си
Никак не могу переделать обращение к глобальной переменной из с++ в си, помогите пожалуйста. int...

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 как решение

Решение

Цитата Сообщение от vsevolodbeginer Посмотреть сообщение
void print()
{
static int n {1};

}
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
Вездепух
Эксперт CЭксперт С++
12792 / 6669 / 1795
Регистрация: 18.10.2014
Сообщений: 16,876
26.02.2023, 00:01 5
Цитата Сообщение от vsevolodbeginer Посмотреть сообщение
чем static int n отличается отличается от глобальной переменной в с++
Короткий ответ: физически ничем.

Более длинный ответ: отличия заключаются в том, что

1. Статическая переменная, объявленная локально, видна только внутри той локальной области видимости, где она объявлена.

2. Если эта переменная требует динамической инициализации, то такая инициализация будет выполнена только тогда (и только если) управление пройдет по объявлению этой переменной.
1
26.02.2023, 00:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2023, 00:01
Помогаю со студенческими работами здесь

Не могу получить значение глобальной переменной из функции
var pages; function getXmlHttp(){ var httppages; try {httppages = new...

Чем отличается event от переменной делегата
using System; using System.Collections.Generic; using System.Text; namespace...

Не могу вывести значение глобальной переменной измененной в во вложенной фукции
Здравствуйте! Проблема следующая, имеется код: var globalVar = &quot;a&quot;; function add() { ...

Чем отличается объявление переменной без и с оператором new?
Вроде как под значения объявленные без new выделяется память в другом месте, но мне не понятна...

Чем отличается объявление переменной без и с оператором new?
Только начал изучать java и сразу не понял, чем отличаются такие объявления переменных и их...

Различие глобальной и глобальной статической переменной
у нас есть заголовочный файл со стражами, допустим global.h , его используют несколько других...

Найти сумму квадратов четных чисел натурального ряда от 1 до N на С++. Не могу разобраться! Не могу понять в чём ошибка
Помогите пожалуйста) Вот мой код: #include &lt;iostream&gt; using namespace std; int main() { int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru