如果我要问一个非常基本的问题,很抱歉。我试图寻找它,但我一直找不到任何答案。
当我运行以下代码时:
#include <stdio.h>
int main() {
char *temp = "sai" "krishna";
printf("%s\n", temp);
return 0;
}它印的是赛克里希纳
你能说明一下为什么会发生这种情况吗?我们不应该使用strcat或其他级联技术吗?
你能参考与它有关的任何文件吗?我们可以在哪里使用这种技术?
发布于 2016-10-28 06:50:37
这是语言特征。C允许字符串文本在编译时进行连接.当您有非常长的字符串文本延伸到几行时,或者当您想要拆分包含十六进制转义序列的字符串文本时,这是非常方便的。(例如,puts("\x42AD")将转换为字符0x42AD,这可能是无稽之谈和无意,而不是puts("\x42" "AD"),它将打印BAD。
strcat和strcpy用于运行时的字符串处理.如果您有两个字符串文本,则它们是编译时常量,并且可能会被编译器预先连接,以节省执行时间。
https://stackoverflow.com/questions/40299352
复制相似问题