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

Простой пример из книги. Объяснить, почему код выдает такие результаты - C++

Восстановить пароль Регистрация
 
ksv_uk
7 / 7 / 1
Регистрация: 04.03.2011
Сообщений: 87
09.01.2014, 12:36     Простой пример из книги. Объяснить, почему код выдает такие результаты #1
Коллеги, привожу простой пример из книги Страуструппа.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <conio.h>
 
 
void f(int a){
 while(a--){
  static int n=0;
  int x=0;
 
  cout<<"n=="<<n++<<",x=="<<x++<<'\n';
  }
}
 
int main(int argc, char* argv[])
{
      setlocale(LC_ALL, "Russian");
      f(3);
      getch();
      return 0;
}
В результате получаем

n==0,x==0
n==1,x==0
n==2,x==0

объясните почему x==0, а не 1 ?
Почему не так


n==0,x==1
n==1,x==1
n==2,x==1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2014, 12:36     Простой пример из книги. Объяснить, почему код выдает такие результаты
Посмотрите здесь:

книги туториалы мануалы по hex и debagger (да и объяснить для чего это) C++
Простой код но выдает ошибку C++
почему программа выдает ошибку при первом запуске, а дальше работает нормально? Код C C++
C++ Число Фибоначчи и рекурсия: код выдает неверные результаты
C++ задача(есть код программы, нужно объяснить её программный код. )
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KATbIK
 Аватар для KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
09.01.2014, 12:40     Простой пример из книги. Объяснить, почему код выдает такие результаты #2
Кури постфиксные и префиксные операторы.
ksv_uk
7 / 7 / 1
Регистрация: 04.03.2011
Сообщений: 87
09.01.2014, 13:09  [ТС]     Простой пример из книги. Объяснить, почему код выдает такие результаты #3
Да, да - это понятно. Почему тогда статик переменная ведет себя не так?
Вот, на картинке 1. Для Постинкремента в cout сначала происходит вывод на экран, а затем увеличение.
Почему тогда для статик переменной постинкремент превращается в преинкремент?
Миниатюры
Простой пример из книги. Объяснить, почему код выдает такие результаты  
ksv_uk
7 / 7 / 1
Регистрация: 04.03.2011
Сообщений: 87
09.01.2014, 13:15  [ТС]     Простой пример из книги. Объяснить, почему код выдает такие результаты #4
Все вопрос снят. Спасибо
Yandex
Объявления
09.01.2014, 13:15     Простой пример из книги. Объяснить, почему код выдает такие результаты
Ответ Создать тему
Опции темы

Текущее время: 06:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru