如何在C ++中初始化整数指针?

时间:2010-08-01 05:35:48

标签: c++ pointers

我有一个非常简单的问题。

我想用以下两行编写以下代码行:

IplImage *image = 0;

喜欢:

IplImage *image;
image = 0;

我想知道我写的是正确的,否则我想知道如何写出正确的(两行)。

由于

5 个答案:

答案 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行中初始化,当行太长时。