我正在使用 Borland C++ Builder 6 尝试执行一些简单的字符串连接。然而,我遇到了一个我认为很有趣的问题。
我在网上找到的所有内容都表明我应该能够做这样简单的事情:
String word = "a" + "b" + "c";
但是,当我尝试编译此代码时,出现“无效指针添加”错误。我可以将每个部分分配给它自己的变量,并将每个部分添加在一起以获得所需的输出。但是,考虑到这个示例非常简单,我认为这是不必要的。
我能够让与上面类似的东西按预期工作的唯一方法是这样做:
String a = "";
String word = a + "a" + "b" + "c";
我的问题是:为什么第二个示例可以正常工作,而第一个示例却不能?
最佳答案
原因是"a"
的类型是char*
(即:指向char的指针),这意味着当你写
"a" + "b"
您正在尝试将指针添加到一起,这是不允许的。
当您创建String
类型时,operator+
会重载,因此
String a = "";
a + "b"
向 String
添加一个指向字符的指针,该字符串有自己的连接定义。
关于string - Borland C++ Builder 6 和字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917797/