如何初始化点阵列?

时间:2013-12-18 21:45:54

标签: c++ winapi

我正在写一些Win32程序。我遇到了一个问题。 我定义了一个Point数组,就像这样:

   POINT points[3];

现在我想初始化它,我知道这是非法的

   POINT points[3] = { (295,295),(200,200),(400,500) };

所以我需要正确的方法。

2 个答案:

答案 0 :(得分:2)

你可以简单地将其作为

POINT points[3] = { 295, 295, 200, 200, 400, 500 };

但更安全的事情就是这个

POINT points[3] = { { 295, 295 }, { 200, 200 }, { 400, 500 } };

有趣的部分是你最初写的不是非法的(你从哪里得到这个想法?)。您在初始化程序中使用的()将导致内部,被解释为逗号运算符。例如,表达式(400, 500)的计算结果为500。这意味着您的原始初始化程序实际上被视为

POINT points[3] = { 295, 200, 500 };

又相当于

POINT points[3] = { { 295, 200 }, { 500, 0 }, { 0, 0 } };

它没有做你想做的事,但肯定不是非法的。

答案 1 :(得分:0)

根据评论:

POINT points[] = {{295,295}, {200,200}, {400,500}};