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

标签 c string concatenation strcat

<分区>

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

当我运行以下代码时:

#include <stdio.h>

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

它打印saikrishna

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

能否请您引用任何与之相关的文档以及我们可以在哪里使用该技术?

最佳答案

这是一种语言功能。 C 允许字符串文字在编译时连接起来。当您有很长的字符串文字跨越多行时,或者当您想要分解包含十六进制转义序列的字符串文字时,它会很方便。 (例如 puts("\x42AD") 将转换为字符 0x42AD,与 puts("\x42""AD") 相反,这可能是无意义的和无意的这将打印 BAD

strcatstrcpy 用于运行时的字符串处理。如果您有两个字符串文字,它们是编译时常量,并且可能会提前由编译器连接起来,以节省执行时间。

关于c - 为什么在两个字符串之间添加一个空格会连接c中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40299352/

相关文章:

php - MySQL 和 PHP - 多行或连接成 1 行 - 哪个更快?

c - linux __user 宏的含义是什么?

c - 哪个代码在 C 中执行得更快?

java - 试图传递一个字符串但收到 "null"

java - 为什么没有 String 的原始类型?

ffmpeg - 使用 ffmpeg : How to set timestamps properly? 连接 mkv 时出现问题

mysql - 如何将数据添加到 MySQL 结果或数据集中的每一行?

c - 限制C中一个文件内全局变量的范围

c - stdio.h 函数 fopen() "w"模式下的错误场景

python - 在字符串的开头和结尾添加 """?