为什么'+'运算符的行为方式与Matlab字符串相同?

时间:2012-05-11 14:49:13

标签: string matlab operator-overloading

在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   

这表明我的变量achar类型。但是,我们知道这不等同于C类型的char,因为它是一个知道其大小尺寸等的对象。

因此,我的问题是: 这个数字输出有什么用?

......导致

为什么他们会把它设计成那样?

1 个答案:

答案 0 :(得分:7)

因为Matlab中的字符串实际上只是char类型的数组,所以它等同于:

[97 98 99] + [100 101 102]

+表示“连接”并不是一成不变的。如果你想在Matlab中进行字符串连接,你可以随时执行:

['abc' 'def']