ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1451  
Старый 29.08.2008, 19:10
4y4o
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме:
179857

Репутация: 4
По умолчанию

#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
for (int x = 1; x <= 10; x++)
{
if (x == 5)
break;
cout << x << " ";
}
cout << "Cukl prervan pri x == 5 " << x << endl;
return 0;
}

'x' : undeclared identifier почему так?
 
Ответить с цитированием

  #1452  
Старый 29.08.2008, 19:13
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int x;
for (x = 1; x <= 10; x++)
{
if (x == 5)
break;
cout << x << " ";
}
cout << "Cukl prervan pri x == 5 " << x << endl;
return 0;
}
Попробуй так. У тебя X инициализируется только для цикла, а когда ты выводиш его после цикла вылазит ошибка.

Последний раз редактировалось Smapt; 29.08.2008 в 19:23..
 
Ответить с цитированием

  #1453  
Старый 29.08.2008, 19:36
4y4o
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме:
179857

Репутация: 4
По умолчанию

Цитата:
Сообщение от Smapt  
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int x;
for (x = 1; x <= 10; x++)
{
if (x == 5)
break;
cout << x << " ";
}
cout << "Cukl prervan pri x == 5 " << x << endl;
return 0;
}
Попробуй так. У тебя X инициализируется только для цикла, а когда ты выводиш его после цикла вылазит ошибка.
Блин пример из книжки и лажа. По логике значение x присваивается оператором for или я чего-то не допонял?
 
Ответить с цитированием

  #1454  
Старый 29.08.2008, 19:39
Smapt
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме:
373690

Репутация: 88
По умолчанию

В твоём примере Х существует только для цикла for, после выхода из цикла ты уже не сможеш его использовать.
 
Ответить с цитированием

  #1455  
Старый 29.08.2008, 19:43
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Цитата:
Сообщение от 4y4o  
Блин пример из книжки и лажа. По логике значение x присваивается оператором for или я чего-то не допонял?
Есть такое понятие как область видимости.
Если переменная объявлена в теле цикла, то по завершению цикла она уничтожается. Тоже самое для функций.

Кури Страуструпа "Язык С++" или гугль по слова static, auto или "область видимость переменных".

Последний раз редактировалось 4p3; 29.08.2008 в 19:45..
 
Ответить с цитированием

  #1456  
Старый 29.08.2008, 19:57
4y4o
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме:
179857

Репутация: 4
По умолчанию

Страуструпа рано мне курить ещё _))) спасибо за помощь )
 
Ответить с цитированием

  #1457  
Старый 29.08.2008, 20:45
4p3
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме:
750247

Репутация: 92
Отправить сообщение для 4p3 с помощью ICQ
По умолчанию

Ты смотришь на сообщение от Smapt. Он исправил код 4y4o и поместил x вне цикла.

Добавлено позже. Если это VC++ 6, то все будет работать, так как он не дружит со стандартами.
 
Ответить с цитированием

  #1458  
Старый 29.08.2008, 20:45
BEGINER
Новичок
Регистрация: 16.08.2008
Сообщений: 19
Провел на форуме:
33376

Репутация: 3
По умолчанию

Цитата:
Сообщение от 4y4o  
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
for (int x = 1; x <= 10; x++)
{
if (x == 5)
break;
cout << x << " ";
}
cout << "Cukl prervan pri x == 5 " << x << endl;
return 0;
}

'x' : undeclared identifier почему так?
У меня этот пример нормально работает. Вероятно это зависит от компилятора
 
Ответить с цитированием

  #1459  
Старый 30.08.2008, 09:18
nerezus
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме:
6490435

Репутация: 2290


Отправить сообщение для nerezus с помощью ICQ
По умолчанию

Цитата:
У меня этот пример нормально работает. Вероятно это зависит от компилятора
Он не должен работать - область видимости, где есть X, заканчивается после } цикла for.
Поэтому и 'x' : undeclared identifier - все верно.

Модифицируй так:

int x;
for (x = 1; x <= 10; x++)
{
 
Ответить с цитированием

  #1460  
Старый 30.08.2008, 09:50
4y4o
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме:
179857

Репутация: 4
По умолчанию

Никто не знает где взять ответы на вопросы для самоконтроля Дейтел, Дейтел 2007 год пятое малое издание?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ