在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