ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

29.08.2008, 19:10
|
|
Познающий
Регистрация: 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 почему так?
|
|
|

29.08.2008, 19:13
|
|
Познающий
Регистрация: 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..
|
|
|

29.08.2008, 19:36
|
|
Познающий
Регистрация: 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 или я чего-то не допонял?
|
|
|

29.08.2008, 19:39
|
|
Познающий
Регистрация: 29.01.2008
Сообщений: 82
Провел на форуме: 373690
Репутация:
88
|
|
В твоём примере Х существует только для цикла for, после выхода из цикла ты уже не сможеш его использовать.
|
|
|

29.08.2008, 19:43
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Сообщение от 4y4o
Блин пример из книжки и лажа. По логике значение x присваивается оператором for или я чего-то не допонял?
Есть такое понятие как область видимости.
Если переменная объявлена в теле цикла, то по завершению цикла она уничтожается. Тоже самое для функций.
Кури Страуструпа "Язык С++" или гугль по слова static, auto или "область видимость переменных".
Последний раз редактировалось 4p3; 29.08.2008 в 19:45..
|
|
|

29.08.2008, 19:57
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Страуструпа рано мне курить ещё _))) спасибо за помощь )
|
|
|

29.08.2008, 20:45
|
|
Участник форума
Регистрация: 18.08.2008
Сообщений: 159
Провел на форуме: 750247
Репутация:
92
|
|
Ты смотришь на сообщение от Smapt. Он исправил код 4y4o и поместил x вне цикла.
Добавлено позже. Если это VC++ 6, то все будет работать, так как он не дружит со стандартами.
|
|
|

29.08.2008, 20:45
|
|
Новичок
Регистрация: 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 почему так?
У меня этот пример нормально работает. Вероятно это зависит от компилятора
|
|
|

30.08.2008, 09:18
|
|
Pagan Heart
Регистрация: 12.08.2004
Сообщений: 3,791
Провел на форуме: 6490435
Репутация:
2290
|
|
У меня этот пример нормально работает. Вероятно это зависит от компилятора
Он не должен работать - область видимости, где есть X, заканчивается после } цикла for.
Поэтому и 'x' : undeclared identifier - все верно.
Модифицируй так:
int x;
for (x = 1; x <= 10; x++)
{
|
|
|

30.08.2008, 09:50
|
|
Познающий
Регистрация: 22.01.2007
Сообщений: 40
Провел на форуме: 179857
Репутация:
4
|
|
Никто не знает где взять ответы на вопросы для самоконтроля Дейтел, Дейтел 2007 год пятое малое издание?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|