将2-D布尔值传递给函数[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将2-D布尔值传递给函数[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
为什么以下布尔“mat”的2-d地址不能像这样传递给函数?
void generate(bool arr) {
......;
......;
}
int main() {
bool mat[3][3];
generate(mat);
return 0;
}
答案
尝试以下示例,然后注意以下描述:
const int N = 3;
void generate(bool arr[][N]) {
for(int i = 0; i < N; i++)
{
for(int j = 0; j < N; j++)
{
std::cout << std::boolalpha << arr[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
// initialize array
bool mat[N][N] = { {1, 0, 1},
{0, 1, 0},
{1, 0, 1} };
generate(mat);
return 0;
}
输出 :
true false true
false true false
true false true
注意:有三种方法可以将二维数组完全按照(this answer)传递给一个函数:
- 函数参数是
2-d
数组:bool arr[10][10]; void Func(bool a[][10]) { // ... } Func(arr);
- 函数参数是一个指针数组:
bool *arr[10]; for(int i = 0;i < 10;i++) arr[i] = new bool[10]; void Func(bool *a[10]) { // ... } Func(arr);
- 函数参数为
pointer
到pointer
:bool **arr; arr = new bool *[10]; for(int i = 0;i < 10;i++) arr[i] = new bool[10]; void Func(bool **a) { // ... } Func(arr);
以上是关于将2-D布尔值传递给函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章