Mình có 1 thắc mắc về mảng tĩnh mong mọi người giải đáp giúp, đây là code của mình :
#include <iostream>
using namespace std;
int main()
{
int const n = 5;
int a[5] = {1, 2, 3, 4, 5}; // 0->4
a[6] = 3; // a[6] chưa có ? cho giá trị a[6] = 3
cout << a[6];
for (int i = 0; i <= 6 ; i++)
{
cout << a[i] << endl;
}
system("pause");
return 0;
}
Trong đó mình tạo 1 mảng tĩnh có 5 phần tử với các giá trị từ 1 đến 5, và chỉ số của mảng sẽ chạy từ 0 -> 4. Mình thử cout ra giá trị a[6] thì nó hiện ra là giá trị rác, nhưng nếu mình sửa lại a[6] = 3 thì vẫn in ra được như thường (riêng a[5] mình không gán nên vẫn là giá trị rác).
Theo mình biết thì bản chất của mảng tĩnh là cố định, nếu như theo cách trên mình làm thì có phải là đang mở rộng chiều dài mảng ra không ? Mình thấy khá mâu thuẫn @@. Mong mọi người giúp !