如果我们注释掉定义char数组的第二个for循环' croschar'输出是char' C'形成字母的形状' C'长度和宽度为五个字符。当没有注释for循环时,没有输出,即终端挂空。问题的根源可能是基本的,但我很难理解为什么会发生这种情况,因为在我看来,数组在功能上是分开的。
#include <cstdlib>
#include <iostream>
#include <cmath>
void cbanner()
{
const int row = 5, col = 5;
const int raw = 5, cal = 5;
char cchar[row][col];
char croschar[raw][cal];
for (int r = 0; r < row; ++r)
{
for (int c = 0; c < col; ++c)
{
cchar[r][c] = 'C';
if ((r > 0) && (r < (row - 1)) && (c > 0))
cchar[r][c] = ' ';
}
}
for (int rr = 0; rr < raw; ++rr)
{
for (int cc = 0; cc < cal; ++cc)
{
croschar[rr][cc] = 'p';
if ((rr = (raw / 2)) && (cc = (cal / 2)))
croschar[rr][cc] = '+';
}
}
for (int r = 0; r < row; ++r)
{
for (int c = 0; c < col; ++c)
{
cout << cchar[r][c];
}
cout << endl;
}
}