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;
}
留言