Консультация № 52309
16.08.2006, 11:43
0.00 руб.
0 8 5
Uvajaemi eksperti pomagite

#include<iostream.h>
#include<conio.h>
using namespace std;

int main()
{
int j;

cout<<"j Raven: "<<j;

getch();

returen 0;
}

rezultat rave
""j Raven: 2""

Vopros a 2 otkuda v zalas?????

Обсуждение

Неизвестный
16.08.2006, 11:50
общий
это ответ
Здравствуйте, Talibov Natik Axmedovic!
Это потому что переменная j не проинициализирована.

Удачи!
Неизвестный
16.08.2006, 11:50
общий
А у меня вывело "j Raven: -858993460".Задайте j какое-нибудь значение.или введите его, например, так cin >> j
Неизвестный
16.08.2006, 11:55
общий
это ответ
Здравствуйте, Talibov Natik Axmedovic!
Просто мусор в памяти.
В реальных программах нужно всегда заботится об инициализации переменной до ее использования, чтобы не получать непредсказуемых результатов при работе с ней.
Неизвестный
16.08.2006, 12:49
общий
это ответ
Здравствуйте, Talibov Natik Axmedovic!

Вам следует внимательнее читать книжку, по которой вы учите С++.

Запомните: в С++ (и в С) переменные простых типов НЕ ИНИЦИАЛИЗИРУЮТСЯ. (Так селано потому, что на инициализацию требуется время, пусть и минимальное)

Это значит, что в переменной оказывается то значение, которое случайно окзалось в той ячейке памяти, которая под неё отведена. Так что могло получиься и -200, и 65536, вообще что угодно.

Кстати, обратите внимание - ваш компилятор наверняка заругался на то, что вы используете неинициализированную переменную.
Неизвестный
16.08.2006, 14:17
общий
это ответ
Здравствуйте, Talibov Natik Axmedovic!
Один из вариантов - посмотреть чужой "мусор", "грохнуть" собственный процесс, получить "случайное" число(!!!). и т.д.
Поэтому, неинициализированная переменная - иногда нужная вещь...
Неизвестный
16.08.2006, 16:11
общий
Пытливый ум ;)Тут я думаю нужно читать книжки не по с++, а по системе, где написано как устроен механизм работы памяти.Если вкратце, то инфа хранящаяся в памяти не стирается в нули, а при удалении данных просто ставится флажок - память свободна. Под переменные память выделяется из свободной...На винте механизм такой же, по этому есть возможность восстановить удаленные файлы (чем занимаются всякие программки), естественно если на это место уже чего нить не записано. Т.е. просто меняется флажек с свободно, на занято, как в туалете ;)И еще ничего страшного в "не инициализации" нет.
Неизвестный
16.08.2006, 16:16
общий
это ответ
Здравствуйте, Talibov Natik Axmedovic!
Так как переменная i была объявлена, но не проинициализирована, то ее значение может быть абсолютно любым, тем, что хранится в памяти по ее адресу. Поэтому результат может быть не только 2, но и что-нибудь другое.
Неизвестный
16.08.2006, 16:16
общий
И еще, фраза<i>В реальных программах нужно всегда заботится об инициализации переменной до ее использования</i>означает следующее:Перед тем как выводить или обрабатывать данные переменной, их их в нее нужно записать ;)
Форма ответа