c++ - c++函数调用char作为参数
问题描述
我的功能定义如下
void initBoard(char board[3][3]){
for (int x=0; x<3; x++){
for (int y=0; y<3;y++){
board[x][y] = '-';
std::cout << board[x][y];
if (y == 0 || y == 1){
std::cout << '|';
}
else if (y == 2){
std::cout << std::endl;
if (x != 2){
std::cout << "-----" << std::endl;
}
}
}
}
}
我如何在我的函数中调用这个函数int main()
来打印电路板?
我可以这样做吗
int main(){
initBoard(char board[3][3]);
return 0;
}
编辑:我修好了,但我还是想了解函数调用的c++逻辑我所做的是
int main(){
char board[3][3];
initBoard(board);
return 0;
}
通过首先声明板,如果我有任何其他函数需要char board[3][3]
作为参数,我必须先在函数参数中声明它并在主函数中声明一次才能进行任何函数调用?
解决方案
在 C++ 中,编译器需要知道关于参数的这些事情,
- 参数的类型。
- 变量的名称(可选)。
- 默认参数(可选)。
当您定义一个参数(在您的情况下char board[3][3]
)时,这只是一个容器。想象一下,当你在机场时,当你通过金属探测器时,他们会给你桶来放你的物品。桶就是这里的参数变量,你的东西就是数据。发送一个空桶是行不通的吗?所以你需要为它提供数据(除了你提供一个默认参数)。
这就是为什么这样做会标记错误的原因,
int main(){
initBoard(char board[3][3]);
return 0;
}
但这并没有,
int main(){
char board[3][3];
initBoard(board);
return 0;
}
简单来说,this:void initBoard(char board[3][3])
和 this:char board[3][3]
是两个不同的东西。一种是函数存储数据以供处理的方式,另一种是包含数据的主要变量。
推荐阅读
- django - bash linux命令中的django静态错误
- mongodb - openshift中的mongodb操作员部署“无法应用默认图像标签”/:4.2.6“无效参考格式”
- json - Ext js如何检查用户是否是批准者 IN EXT JS
- java - 在 Java 中构建字符串时替换转义序列的有效方法
- scala - 使用 sparkContext.addFile 在 jupyter notebook 中导入自定义 scala 对象
- delphi - 设置richedit的高度以跳过滚动条
- python - 将应答机检测与 Twilio 代理结合使用
- motion - 后向值迭代
- flask - Gunicorn 设置在生产中不起作用
- flutter - 有什么工具可以用来管理flutter中的全局数据吗?