c - 如何在 C 中初始化字符串数组?

标签 c arrays string initialization initializer-list

如果我有 char arr[10][2];

如何初始化它?有多少种方法,哪种方法最好?

char arr[10][2] = {""}; 这对吗?

最佳答案

下面是一些如何在 C 中初始化字符数组的示例。您可以对数组的任何元素使用所示初始化的任意组合

#include <stdio.h>

int main(void) 
{
    char arr1[10][2] = { "A" };
    char arr2[10][2] = { { "A" } };
    char arr3[10][2] = { { "AB" } };
    char arr4[10][2] = { { 'A', '\0' } };
    char arr5[10][2] = { { 'A', 'B' } };
    char arr6[10][2] = { [0] = "A" };
    char arr7[10][2] = { [0] = "AB" };
    char arr8[10][2] = { [0] = { "AB" } };
    char arr9[10][2] = { [0] = { [0] = 'A', [1] = '\0' } };
    char arr10[10][2] = { [0] = { [0] = 'A', [1] = 'B' } };


    // to avoid diagnostic messages of unused variables
    ( void )arr1;
    ( void )arr2;
    ( void )arr3;
    ( void )arr4;
    ( void )arr5;
    ( void )arr6;
    ( void )arr7;
    ( void )arr8;
    ( void )arr9;
    ( void )arr10;

    return 0;
}

你也可以使用这样的初始化

    char arr1[10][2] = { "" };
    char arr1[10][2] = { '\0' };

你不能在 C 中使用这样的初始化

    char arr1[10][2] = {};

这在 C++ 中是允许的。

关于c - 如何在 C 中初始化字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40812858/

相关文章:

c - 我询问优化代码以获取显示不出现的数字的代码

c - 如何在另一个结构中定义结构变量?

Ruby 输出 Unicode 字符

java - HashMap<String,Double> 的格式错误的二进制序列化

javascript - 填充对象时,神秘的 "remove" key 插入到我的对象中

java - 在字符串中递归查找字符

c - 以下C代码编译错误的原因

C Chomp 问题?

c++ - 将文件存储在 unsigned char 数组中并打印

Python 字符串比较不起作用