C/C++陣列初始化錯誤

有同學問我陣列給值的問題,這點在C++ Primer有寫到,

一些程式設計的書也會寫,只是一般同學都不會注意到"初始化"和"給值"是不同的。

#include <iostream>

using namespace std;

//正常作法-初始化
int inter_priority[6][6][4] = 
{
{{4,0,0,0},{4,3,2,1},{4,3,2,1},{4,2,3,1},{4,2,1,3},{4,0,0,0}},
{{4,3,2,1},{4,3,2,1},{4,3,2,1},{4,3,2,1},{4,2,1,3},{4,3,2,1}},
{{4,2,1,3},{4,3,2,1},{4,3,1,2},{4,3,2,1},{4,2,1,3},{4,3,1,2}},
{{4,1,3,2},{4,2,3,1},{4,3,1,2},{4,1,3,2},{4,1,2,3},{4,1,3,2}},
{{3,2,1,4},{4,2,1,3},{3,2,1,4},{4,2,1,3},{3,2,1,4},{3,2,1,4}},
{{4,0,0,0},{4,3,2,1},{4,3,1,2},{4,1,3,2},{4,2,1,3},{4,0,0,0}}
};

// 同學的錯誤用法-當成給值
int inter_priority[6][6][4];

int main()
{
// 同學的錯誤用法-當成給值
inter_priority = 
{
{{4,0,0,0},{4,3,2,1},{4,3,2,1},{4,2,3,1},{4,2,1,3},{4,0,0,0}},
{{4,3,2,1},{4,3,2,1},{4,3,2,1},{4,3,2,1},{4,2,1,3},{4,3,2,1}},
{{4,2,1,3},{4,3,2,1},{4,3,1,2},{4,3,2,1},{4,2,1,3},{4,3,1,2}},
{{4,1,3,2},{4,2,3,1},{4,3,1,2},{4,1,3,2},{4,1,2,3},{4,1,3,2}},
{{3,2,1,4},{4,2,1,3},{3,2,1,4},{4,2,1,3},{3,2,1,4},{3,2,1,4}},
{{4,0,0,0},{4,3,2,1},{4,3,1,2},{4,1,3,2},{4,2,1,3},{4,0,0,0}}
};

    cout <"Error:" << inter_priority[5][3][3] << endl;
    return 0;
}

留言