我想知道在C中是否有可能将2D数组的每个元素初始化为相同的值。我声明我的2D数组:
char arry[x][y];
我希望每个元素arry [0 ... x] [0 ... y]都包含星号字符。有没有循环的任何简单方法吗?我想的是:
char arry[x][y] = '*'
但我知道这不起作用。
答案 0 :(得分:1)
你可以使用scalar initializer:
// Define row and column
int row = 4, col = 5;
// Initialize 2D character array
char array2D[row][col] = {[0 ... (row-1)][0 ... (col-1)] = '*'};
// Print array to screen
printf("\nArray:\n");
for(int x = 0; x < row; x++)
{
for(int y = 0; y < col; y++)
printf("%c\t", array2D[x][y]);
printf("\n");
}
你可以看到输出:
Array:
* * * * *
* * * * *
* * * * *
* * * * *
答案 1 :(得分:0)
只要“相同值”为零
即可char arry[x][y] = { 0 };
上面将用零初始化数组的所有元素。
对于任何其他值,通过初始化语法是不可能的(除非您想明确地为每个数组元素拼写“相同的值”)。您将编写自己的初始化周期或使用预先编写的函数。