Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Wbgury
88 / 85 / 7
Регистрация: 16.05.2010
Сообщений: 272
1

отличия между static и auto переменными

11.04.2012, 15:42. Просмотров 1735. Ответов 4
Метки нет (Все метки)

Объясните пожалуйста чем отличаются переменные static и auto? Если можно покажите их отличие в простом примере.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2012, 15:42
Ответы с готовыми решениями:

Отличия спецификаторов decltype и auto
Спецификатор auto : - выводит тип переменной из инициализатора; - может...

Отличия между структурами и классами
Объясните пожалуйста, в С++, получается, что структура отличается от класса...

Объясните отличия между двумя кодами
Всем привет ! Чем отличается такой код for(...){ ... ... } от такого ...

В чем отличия между union и struct?
Здравствуйте! Вопрос в названии темы

В чем отличия между выражением (expression) и оперетором (statement)?
Здравствуйте, скажите пожалуйста в чем отличия между выражением и оператором?...

4
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 15:47 2
auto при выходе из блока уничтожается
под static память выделяется один раз и освобождается при завершении программы
1
Schizorb
510 / 462 / 82
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
Завершенные тесты: 1
11.04.2012, 15:52 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
void foo()
{
    static int x = 0; // попробуй удалить static
    ++x;
    
    std::cout << x << "\n";
}
int main()
{
    for(int i = 0; i < 10; ++i)
        foo();
}
Автоматические переменные уничтожаются при выходе из функции, статические - инициализируются один раз и не теряют значение при выходе из функции, живут до завершения программы.

В примере вызывается функция 10 раз, в ней есть локальная статическая переменная. Видно, что значение не теряется между её вызовами, будет напечатано: 1, 2, 3, ....

Если убрать спецификатор static, переменная будет автоматической, т.е. будет создаваться каждый раз заново при вызове функции и инициализироваться заново. Будет напечатано: 1, 1, 1, ...
1
Wbgury
88 / 85 / 7
Регистрация: 16.05.2010
Сообщений: 272
11.04.2012, 17:05  [ТС] 4
panicwassano,
Schizorb, огромное спасибо! Все бы преподователи в универах обьясняли как вы) Да нет, же! Они надектуют всякой дребедени. Про static и auto в начале года не понял, а тут экзамены скоро по всему что прошли, вот решил подтянуть)
0
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
11.04.2012, 21:25 5
Wbgury книжки надо читать
0
11.04.2012, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2012, 21:25

Что общего и какие отличия между одномерным и двумерным массивами
Что общего и какие отличия между одномерным и двумерным массивами

Какие есть отличия между struct и class кроме модификаторов доступа по умолчанию?
Какие есть отличия между struct и class кроме модификаторов доступа по...

Можно ли просчитать дистанцию между переменными в map?
values.push_back(necessaryCoor) - - - - Вектор содержит только координаты ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru