为什么在两个字符串之间添加一个空格来连接c中的字符串?

时间:2016-10-28 06:33:15

标签: c string concatenation strcat

很抱歉,如果我要问一个非常基本的问题。我试图搜索它,但我一直找不到任何答案。

当我运行以下代码时:

#include <stdio.h>

int main() {
    char *temp = "sai" "krishna";
    printf("%s\n", temp);
    return 0;
}

打印 saikrishna

你能否明确说明为什么会这样?我们不应该使用strcat或其他级联技术吗?

您能否参考与其相关的任何文件以及我们可以使用此技术的地方?

1 个答案:

答案 0 :(得分:0)

这是一种语言功能。 C允许字符串文字在编译时连接。当你有很长的字符串文字延伸到几行时,或者当你想要分解包含十六进制转义序列的字符串文字时,它可以很方便。 (例如puts("\x42AD")将转换为字符0x42AD,这可能是无意义且无意的,而puts("\x42" "AD")将打印BAD

strcatstrcpy用于在运行时进行字符串处理。如果你有两个字符串文字,它们是编译时常量,也可以提前连接编译器,以节省执行时间。