| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > самоприсваивание значения переменной |
| Автор: vancha94 28.6.2011, 23:27 | ||
| Здравствуйте, возникла проблема, при написании простейшей программы на С++ иницилизируя три переменных типа double , первая остается пустой, а две вторые заполняются какими-то произвольными числами, вопрос: как эти значения там оказались? скрин: http://s1.ipicture.ru/
помогите пожалуйста |
| Автор: boostcoder 28.6.2011, 23:37 |
| ну так инициализируй нулем. в чем проблема? |
| Автор: vancha94 28.6.2011, 23:39 |
| я до этого тоже дошел, мне не понятно откуда эти значения берутся и с чего? |
| Автор: volatile 29.6.2011, 01:03 |
vancha94, это стековый мусор. Следы прошлых воплощений. |
| Автор: newbieone 29.6.2011, 02:40 | ||
| vancha94, а компилятор разве не выдавал warning на этапе компиляции, что-то вроде variable might not have been initialized? на самом деле, то, что первая переменная получила значение, равное нулю - воля случая. с тем же успехом там могло оказаться что угодно. согласно хорошему тону, т.н. local variables - т.е. те, что не являются членами класса, всегда должны быть инициализированы разработчиком при их определении. ни в C, ни в C++, ни в Java их равенство нулю, если разработчик забыл это сделать, не гарантируется.
|
| Автор: vancha94 29.6.2011, 08:38 | ||||
То есть переменные одной программы используют область памяти переменных, использованных в предыдущей программе. Я правильно понял? |
| Автор: boostcoder 29.6.2011, 09:07 |
ага. все именно так. |
| Автор: newbieone 29.6.2011, 09:10 | ||
только я немного заврался,
не при объявлении, а при определении, конечно. |