在Matlab中,以下语句给出了一个数字输出。 。为什么'+'运算符的行为与Matlab字符串一样?
>> 'abc' + 'def'
ans =
197 199 201
在C++中,以下
std::string("abc") + std::string("def")
输出...将给说是更有益的...
abcdef
多一点探索出..
>> a = 'abc'
a =
abc
>> whos
Name Size Bytes Class Attributes
a 1x3 6 char
这表明我的变量a
是一个char
类型。但是,我们知道,这不等同于一个C char类型,因为它是知道它的大小尺寸等
因此一个对象,我的问题是:什么 会使用这个数字输出是什么?
...导致
他们为什么要设计它的行为呢?
“因为这是怎样的语言[和API]定义。”这就是它的全部。使用'+'作为字符串concat并没有被普遍接受为正确的。例如,它甚至被认为是Scala(从Java借来的)中的一个“小设计缺陷”。 – 2012-05-11 14:53:05
我认为在C++中猖獗的操作符“重新定义”实际上是有害的 - 您需要阅读文档才能找出最简单的操作符。 Matlab可以让你在一定程度上做到这一点 - 但人们不会。 – Marc