は、以下のプログラムを検討値を返すことができます理由:「値」であると思われるので、関数fにおける変数「RET」(のC++での関数はスタックが
class C {
...
};
const C f() {
C ret;
cout << &ret << endl;
return ret;
}
int main() {
C value = f();
cout << &value << endl;
}
result: // note the address are the same
0x7ffdd24b26e0
0x7ffdd24b26e0
を)し、変数「値は」同じメモリアドレスを持っています'ret'のコピーではありません。変数 'ret'はスタック変数なので、f()が復帰した後に無効にする必要があります。なぜ関数内でスタック値を返すことができるのですか?
グラム++バージョン:
g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
最初の投稿または2番目の投稿のいずれかで移動する2番目の質問に関するメモを追加する必要はありません。それは余分なノイズです。 –