+ 1
why did that display (0) even when i had not declare the b[9] variable?
#include <iostream> using namespace std; int main() { int b[7]; cin>>b[0]; cout << b[0] << endl; // Outputs 11 cin>>b[9]; cout<< b[9] << endl; // Outputs 70 return 0; } In the above program, I gave (5) and (b) as the input{content inside the braces as input} but it's output was : 5 0 so I dont know why did that happen? because i didn't declare the variable b[9]
2 Answers
+ 2
You defined the variable b as an array of 7 integers.
b[9] is not a separate variable.
The compiler thinks b[9] is the 10th position in that array b, but it is an "illegal" position because beyond 7.
You can try to assign and retrieve values from there, and it may work (depending on compiler) but that position in memory may also be modified by other parts of the code.
+ 1
b is a char, not a number so when cin tried to cast "b" as an integer, it stopped on the first character and returned 0