如何初始化点数组?

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

   POINT points[3];

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

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

所以我需要正确的方式。


你可以简单地这样做

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

但一个更安全的事情就是这样做

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

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

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

这又相当于

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

它不会做你想做的事情,但它肯定不是非法的。


根据评论:

POINT points[] = {{295,295}, {200,200}, {400,500}};
链接地址: http://www.djcxy.com/p/84429.html

上一篇: How to Initialize a Point Array?

下一篇: c++ access variable from different switch case