字符串文字可以与 char* 连接吗?
Can a string literal be concatenated with a char*?
我知道在 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?
没有。字符串文字的连接在翻译(编译)期间执行。您请求的操作必须在程序执行时在程序内完成。没有自动执行的规定;您必须编写代码来为结果字符串分配 space 并执行连接。
没有。连接相邻的字符串文字是编译器的一项功能,它将相邻的字符串文字视为一个字符串文字,以帮助编码人员编写可读代码(以防大字符串文字不能很好地放在一行中)。
C 作为一种语言没有串联运算符,最接近它的是函数 (strncat
、strcat
。strcpy
、memcpy
).
我知道在 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?
没有。字符串文字的连接在翻译(编译)期间执行。您请求的操作必须在程序执行时在程序内完成。没有自动执行的规定;您必须编写代码来为结果字符串分配 space 并执行连接。
没有。连接相邻的字符串文字是编译器的一项功能,它将相邻的字符串文字视为一个字符串文字,以帮助编码人员编写可读代码(以防大字符串文字不能很好地放在一行中)。
C 作为一种语言没有串联运算符,最接近它的是函数 (strncat
、strcat
。strcpy
、memcpy
).