簡體   English   中英

有人可以向我解釋這個 C++ 數組嗎?

[英]Can someone explain to me this C++ array?

#include <iostream>
using namespace std;
int main()
{
    int arr1[4];
    int arr2[4];
    for (int i = 0;i<=4;i++)
    {
        cin>>arr1[i];
        arr2[i]=arr1[i];
    }
    for(int j = 0;j<=4;j++)
    {
        cout<<arr1[j]<<" ";
        cout<<endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

結果:

在此處輸入圖片說明

有人可以向我解釋為什么arr[0] = 5嗎? 我想不通。

i=4時,您訪問越界。 arr1arr2只有 4 個元素。 arr1[0], arr1[1], arr1[2], arr1[3]arr2[0], arr2[1], arr2[2], arr2[3]

您的編譯器可能會在arr2之后分配arr1 ,並且意外地arr2 + 4arr1具有相同的地址,因此對arr2[4]的訪問將值寫入arr1[0]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM