c - 将二维数组全部初始化为相同的值?

标签 c arrays

我想知道是否可以在 C 中将二维数组的每个元素初始化为相同的值。我这样声明我的二维数组:

char arry[x][y];

我希望每个元素 arry[0...x][0...y] 都包含星号字符。有没有没有循环的简单方法来做到这一点?我在想类似的东西:

char arry[x][y] = '*'

但我知道那行不通。

最佳答案

你可以使用 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:
*   *   *   *   *   
*   *   *   *   *   
*   *   *   *   *   
*   *   *   *   *   

关于c - 将二维数组全部初始化为相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15715968/

相关文章:

c - 如何在模块化编程中使用结构?

c - 使用 usbd_core.c 检测 USB 设备何时断开连接

c - 这个 1984 年国际混淆 C 代码竞赛获奖作品是如何运作的?

c - 从我的 makefile 运行时 GCC 忽略库

javascript - Protractor - 如何将 Promise 数组的结果获取到另一个数组中并在其他函数中使用该数组

将由空格分隔的数字字符串转换为 int 数组

python - 将列表切片到给定元素

c - 如何使用 switch case 更新值

arrays - 从数组索引列表创建子数组

arrays - 逻辑应用 - 迭代 HTTP 调用的 JSON 输出