我对c ++很新,我一直在尝试使用librow库(中值过滤器)。我无法理解的是:
typedef int element;
它说它是一个int。但是在这里:
// 2D MEDIAN FILTER, window size 3x3
// image - input image
// result - output image, NULL for inplace processing
// N - width of the image
// M - height of the image
void medianfilter(element* image, element* result, int N, int M);
它表示将图像作为类型元素*。这怎么可能?非常感谢你的答案中的一个例子。
答案 0 :(得分:1)
指针可以指向单个元素,也可以指向元素的数组。编译器并不关心这种或那种方式。在这种情况下,您需要传递数组。
将指针传递给数组时,还必须传递给出数组大小的信息。在这种情况下,它将是N * M
。
答案 1 :(得分:0)
element*
表示指向int的指针。 Aka记忆int
变量的地址。
在这种情况下,它将是一个int数组的地址(即连续整数列表中的第一个int。)
每个N * M整数将逐行表示图像的像素。