【问题标题】:Can a string literal be concatenated with a char*?字符串文字可以与 char* 连接吗?
【发布时间】:2019-07-13 16:32:03
【问题描述】:

我知道在 C 中相邻的字符串文字是连接在一起的。我想知道,相邻的字符串文字是否与 char*s 连接?

我问这个问题的原因是因为我想将两个字符串的串联传递给perror(),而其中一个字符串是事先不知道的,所以我必须使用char*

perror("error opening " "file.txt");  // string literals are concatenated

char* filename = "file.txt";  // or some other file
perror("error opening " filename);    // will this work?

【问题讨论】:

    标签: c string-literals char-pointer


    【解决方案1】:

    没有。连接相邻的字符串文字是编译器的一项功能,它将相邻的字符串文字视为一个字符串文字,以帮助编码人员编写可读的代码(以防大字符串文字不能很好地放在一行中)。

    C 作为一门语言没有连接运算符,最接近它的是函数(strncatstrcatstrcpymemcpy)。

    【讨论】:

      【解决方案2】:

      没有。在翻译(编译)期间执行字符串文字的连接。您请求的操作必须在程序执行时在程序内完成。没有自动执行的规定;您必须编写代码来为结果字符串分配空间并执行连接。

      【讨论】:

        猜你喜欢
        • 2010-10-12
        • 2012-04-12
        • 2012-01-02
        • 2012-10-28
        • 1970-01-01
        • 1970-01-01
        • 2018-06-18
        相关资源
        最近更新 更多