将二维布尔值传递给函数
Passing a 2-D Boolean to a function
为什么后面的布尔"mat"的二维地址不能像这样传递给函数?
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
注意:有 3 种方法可以将二维数组完全根据(此答案(传递给函数:
函数参数是一个
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);
相关文章:
- 如何用参数值调用函数(仅在运行时已知)
- 为什么可以将左值传递给"std::async",即使它引用了右值
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 是否有原子加载非原子值的函数?
- 使用基类指针调用基类的值构造函数的语法是什么?
- 编写以 C++ 为单位返回值的函数
- VkSurfaceKHR 指针的值在函数调用后更改,无需任何显式赋值
- 无法将右值引用函数与 GCC 匹配
- 在对象数组中搜索字符串并返回相应值的函数
- 当有右值构造函数可用时,为什么从右值调用类引用构造函数重载?
- 当值传递给C++中的运算符重载函数时会发生什么
- C++,如何将返回值的函数传递给 func
- 如何将值传递给 lambda 函数
- 如何将值传递给MFC消息映射函数on_command
- 如何将函数中的多个值传递给C++中的不同函数
- 将多个解析值传递给 addPositionalArgument 函数
- C++为什么将左值传递给move构造函数对模板有效
- 一种自动检测对象的方法,该方法通过值传递给c++中的函数
- 试图将整型转换为void以按值传递给pthread函数