Форум программистов, компьютерный форум CyberForum.ru

Как локальную переменную сделать глобально, при это сохранив накопленное в ней значение? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти длины биссектрис http://www.cyberforum.ru/cpp-beginners/thread955381.html
По заданным координатам вершин треугольника найти длины биссектрис этого треугольника. Не могу понять как найти длину биссектрисы, как применяется формула? И как будет выглядеть вообще решение задачи.
C++ Сохранение таблицы в файл строк Стоит такая задача: сохранять данные таблицы в файл, для дальнейшего считывания этих данных обратно в таблицу. Я сохраняю данные так: FILE* f; if ((f=fopen(SelectedFold,"w")) == NULL) { MessageBox("Error", MB_OK); } for(int j=0;j<m_listCtrl.GetItemCount();j++) { http://www.cyberforum.ru/cpp-beginners/thread955379.html
C++ переделать на с++
Последовательность 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, …, состоящая из нулей и единиц строится так: первый ее элемент равен 1, а остальные получаются из предшествующих с помощью логической операции отрицания: not(1) = 0, not (0) = 1. Второй элемент равен отрицанию первого, третий и четвертый – отрицанию первого и второго соответственно и т.д. По заданному n вычислить n-ый член указанной...
Дан двумерный массив C++
Дан двумерный массив. Составит программу которая определяет является ли элементи в каждом строке расположена по возрастанию.
C++ Локализация, фасеты http://www.cyberforum.ru/cpp-beginners/thread955355.html
Здорова господа есть задачка: "Определите Season_io (параграф D.3.2) для языка отличного от американского английского." От тот код что есть в книге тут вроде как вводишь числа он вместо этого числа подставляет время года: #include <iostream> using std::cout; using std::cin; using std::endl; using std::ostream; using std::istream; using std::ios_base;
C++ При помощи оператора WHILE протабулировать функцию в диапазоне от 0.5 до 5 с шагом 0.1 Помогите пожалуйста!!! Разработать алгоритмы и программы решения задач: a) при помощи оператора WHILE протабулировать функцию в диапазоне от 0.5 до 5 с шагом 0.1 b) при помощи оператора DO...WHILE протабулировать функцию y=2.5+arctg(x) в диапазоне параметра от 1 до 10 с шагом 0.5. подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
16.09.2013, 10:01     Как локальную переменную сделать глобально, при это сохранив накопленное в ней значение?
Цитата Сообщение от iamthewine Посмотреть сообщение
Ребята, помогите, пожалуйста.
Вот, например, есть такой код:

C++
1
2
3
4
for (int i=0; i<10; ++i) {
  /* здесь делается что-то полезное */
}
std::cout << "Цикл закончился. i равно " << i;
Но он, ясно, не будет работать, так как переменная i является локальной для блока цикла и не существует за его пределами. Как эту переменную i сделать глобальной, если мне надо дальше использовать накопленное в ней значение?
На самом деле ответ на вопрос зависит от многих факторов. В частности это зависит от компилятора. Например мой компилятор ваш код спокойно откомпилирует. Так как для некоторых компиляторов переменная объявленная в цикле определена и далее в том же блоке где находится сам цикл, но это не панацея.
В С++ для решения подобных проблем существует ключевое слово static. Переменная обявленная статической существует все время выполнения программы и в этом отношении аналогична глобальной, но объявляется и имеет область видимости как локальная.
 
Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru