C 是否有单行方式初始化字符串?

C 是否有单行方式初始化字符串?,c,string,char,C,String,Char,是否有单行方式初始化字符串?例如,在C#中,您只需执行以下操作: string str=“示例” 在C中,我想做如下操作,但我的编译器抱怨: char str[]=“示例” 编辑: char str[]=“示例” …事实上确实有效。我的编译器一直在抱怨这一行,但真正的问题是前一行的内容。丹尼尔·菲舍尔(Daniel Fischer)下面的评论是导致这一发现的原因。谢谢您,很抱歉给您带来困惑。您可以使用这两种方法中的任何一种 使用字符串作为以null('\0')字符终止的字符集合 char ch[

是否有单行方式初始化字符串?例如,在C#中,您只需执行以下操作:

string str=“示例”

C中,我想做如下操作,但我的编译器抱怨:

char str[]=“示例”

编辑:

char str[]=“示例”


…事实上确实有效。我的编译器一直在抱怨这一行,但真正的问题是前一行的内容。丹尼尔·菲舍尔(Daniel Fischer)下面的评论是导致这一发现的原因。谢谢您,很抱歉给您带来困惑。

您可以使用这两种方法中的任何一种

  • 使用字符串作为以null('\0')字符终止的字符集合

    char ch[]={'E','x','a','m','p','l','E','\0'}

  • 如果需要,如数组递增或递减,则数组变量名应产生错误,然后还可以使用

    const char*ch=“示例”


  • 初始化字符串的方法已正确。你可能在那条线以上的其他地方有错误

    从技术上讲,有两种方法可以做到这一点:

    char str1[] = "string";  // static array 
    char* str2 = "string";   // Pointer points to a constant
    
    这里建议使用静态数组(第一种方法),因为您可以在初始化内容后修改它。但是,您不能修改第二个方法的内容,因为字符串将存储在只读内存中


    注意:对于第二种方法,您也可以为新字符串分配新内存,而不是修改当前字符串。分配后,使用
    strcpy()
    函数分配字符串。另外,不要忘记调用
    free(str)完成后取消分配内存。

    错误是什么?
    char str[]=“示例”
    是完全有效的C语言,也是推荐的方法之一。C代码段是合法的。请发布编译器错误。C2500(E)非法标记“char”。C2225(E)未声明的名称“str”。C2500(E)非法令牌“]”。上一行忘记了分号?您的第二种方法是错误的。应该有
    const
    限定符。真的。还是不好,有很多问题。请仔细阅读有关常数的内容。