将字符单独分配给数组时,“分配从指针生成整数而不进行强制转换”

1N5*_*818 0 c arrays string pointers for-loop

我在了解将字符分配给该数组之间的区别时遇到一些困难。我向全球宣告

char charlist[7];
Run Code Online (Sandbox Code Playgroud)

然后继续制作一个函数

int stringthing()
{
    for(int i=0; i < 7; i++)
    {
        charlist[i] = 'G';
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后在main中声明它。当我用 for 循环赋值时它工作得很好,但是当我使用

int stringthing()
{
    charlist[0] = "M";
    charlist[1] = "T";
    charlist[2] = "W";
    charlist[3] = "R";
    charlist[4] = "F";
    charlist[5] = "S";
    charlist[6] = "U";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并在 main 中声明这一点,我收到错误“赋值从指针生成整数而不进行强制转换[默认启用]”。这是同一个东西吗?

Eri*_*ubé 5

尝试将第二个示例中的引号从双引号更改为单引号。现在,您尝试将每个数组元素设置为字符串而不是字符。