我有一个非常简单的问题。
我想用以下两行编写以下代码行:
IplImage *image = 0;
喜欢:
IplImage *image;
image = 0;
我想知道我写的是正确的,否则我想知道如何写出正确的(两行)。
由于
答案 0 :(得分:5)
完全正确。但如果你没有一个很好的理由这样做,我建议把它作为一行声明并初始化它。它更加明显,你不太可能错过那种初始化指针的方式。
答案 1 :(得分:1)
这是对的。你为什么不试试呢?
答案 2 :(得分:1)
书写
IplImage *image = 0;
似乎更清晰,因为很明显使用指针。
使用
IplImage *image;
image = 0;
您可能在第一行和第二行之间有其他代码行。第二行(image = 0
)对我来说不太清楚。如果您更喜欢第二个选项(两个班轮),也许将变量重命名为pImage
会提高可读性。
答案 3 :(得分:0)
Iplimage是opencv中定义的结构。 您可以使用以下代码初始化指针:
Iplimage* image=cvCreateImage(width,height,channels);
答案 4 :(得分:0)
在C ++中
IplImage *image(NULL);
也可以允许,即使通过调用第一个参数设置为NULL的构造函数来分配您的图像可能会让您感到困惑。
然而,在1行中声明+初始化仍然被修改,几乎所有情况。唯一的情况是,我认为最好在2行中初始化,当行太长时。