很抱歉,如果我要问一个非常基本的问题。我试图搜索它,但我一直找不到任何答案。
当我运行以下代码时:
#include <stdio.h>
int main() {
char *temp = "sai" "krishna";
printf("%s\n", temp);
return 0;
}
打印 saikrishna
你能否明确说明为什么会这样?我们不应该使用strcat或其他级联技术吗?
您能否参考与其相关的任何文件以及我们可以使用此技术的地方?
答案 0 :(得分:0)
这是一种语言功能。 C允许字符串文字在编译时连接。当你有很长的字符串文字延伸到几行时,或者当你想要分解包含十六进制转义序列的字符串文字时,它可以很方便。 (例如puts("\x42AD")
将转换为字符0x42AD,这可能是无意义且无意的,而puts("\x42" "AD")
将打印BAD
。
strcat
和strcpy
用于在运行时进行字符串处理。如果你有两个字符串文字,它们是编译时常量,也可以提前连接编译器,以节省执行时间。