コンパイル時のCのような文字列は、スタティックメモリ内に1つのインスタンスとして保持されます。例えば、gcc 4.6の実行例では、私はtrue
の両方を以下のように実行しています。しかし、私はそれが常に真実であり、移植可能であるのだろうかと思います。 CとC++の両方の動作は面白いです。スタティックメモリインスタンス内の文字列数
#include <iostream>
bool amIportable(const char* value) {
const char* slocal = "Hello";
return (slocal==value);
}
int main() {
const char* s = "Hello";
std::cout << std::boolalpha
<< amIportable(s) << '\n'
<< amIportable("Hello") << '\n';
}