繁体   English   中英

c ++如何将二维数组传递给函数以及如何读取它

[英]c++ How to pass 2d array to the function and how to read it

我有

char buffer[220][800]={0};

我想把它传递给一个函数

void myfunction( 2d array, int column, int row);

在 myfunction 定义中,我希望能够做到

for(c =0 ; c<column ; ++c)
{
     for(r =0 ; r<row ; ++r)
     {
        if(array[c][r] ==0)
        {

           do something
         }
     }

}

数组自然衰减为指向其第一个元素的指针。 但这并不意味着数组数组会衰减为指向指针的指针,而是指向数组的指针。

举你的例子

char buffer[220][800];

那是char[220][800]

当它衰减到指向其第一个元素的指针时,它将与&buffer[0] ,后者的类型为char(*)[800] 这必须是你的论点的类型:

void myfunction(char (*array)[800], int columns, int rows);

在函数内部,变量array可以像数组数组一样使用,如array[i][j]

你可以这样做:

void myfunction(char [][800], int columns, int rows);

关于数组的遍历,是的:需要两个循环。 但是不要忘记您正在使用字符。 我不知道您是否希望将它们与零进行比较。 那是空的:

http://en.cppreference.com/w/cpp/language/ascii

顺便说一句,使用向量,您不需要传递剩余的两个参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM