2017-01-05 3 views
1

私はVisual Studio 2015を使用していますが、誤って2文字をcharに書きました。何らかの理由でコードがコンパイルされ、画面に出力されました(警告でもありません)。VC++で文字の2文字が許可されるのはなぜですか?

#include <string> 
#include <iostream> 

int main() { 
    std::cout << 'a '; 
    std::string temp; 
    std::getline(std::cin, temp); 
    return 0; 
} 

出力が一貫している:

24864 

出力の背後にあるロジックは何ですか?

+0

これは、VC++がC++標準を実装しようとしているためで、C++標準では文字リテラル(コードの構成を含む)について説明しています。 –

+2

[この質問](http://stackoverflow.com/questions/3960954/c-multicharacter-literal)には答えが含まれています。 – NathanOliver

+0

Aha。誇張された「実装が定義されました。 – nicomp

答えて

1

これらはいわゆる「マルチチャール」リテラルなので、ほとんどの現在の実装では、最大4個の文字を持つことができます。

関連する問題