Я новичок в C++. В последнее время я придерживался простого кода функций C++. Я буду очень благодарен, если вы сможете указать, в чем именно проблема. Код следующим образом:У меня возникла проблема с инициализацией массива C++
// used to test function of fill
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int val = 0;
int myarray[8];
//fill(myarray,myarray+2,1);
for(;val < 8;++val){
cout << myarray[val];
cout << endl;
}
}
И он распечатал:
-887974872
32767
4196400
0
0
0
4196000
0
вопрос, я думал, что значение по умолчанию для массива без инициализации (в этом случае ее размер 8) будет (0,0,0,0,0,0,0,0)
, Но там были какие-то странные цифры. Может ли кто-нибудь сказать мне, что случилось и почему?
Это должно подвести итог, почему они не обнулены: http://chat.stackoverflow.com/transcript/message/10771489#10771489 – chris
локальные переменные не инициализируются по умолчанию – assem
* Я думал, что значение по умолчанию для массива без инициализации (в этом случае его размер равен 8) будет (0,0,0,0,0,0,0,0) *. Что заставило вас предположить это? (Я просто имею в виду, не предполагаю, что позволяет играть безопасно и придерживаться того, что говорит doc) –