私にしつこいされての好奇心:C++の参照渡し:コールスタックはどのように使用されていますか?
は、この関数を考えてみましょう:
void add10(int& x) {
x += 10;
}
私は長い時間のためにC言語でプログラミングしてきたので、私はそれがこれを行うには意味を正確に知っている:
void add10(int *x) {
(*x)+=10;
}
xのアドレスは(リターンアドレス、ダイナミックリンクなどと共に)スタックにプッシュされ、関数自体が逆参照します。
しかし、最初のケースではコールスタックはどのように使用されていますか?それは単に第2の場合の構文上のショートカットですか?
同じこと:通常、参照は内部的にポインタとして実装されます。それは主に構文的な砂糖です。 –
_ "2番目のケースの構文ショートカットですか?"これは実装が定義されており、C++標準ではカバーされていません。 – user0042
[それは何ですか](https://godbolt.org/g/mLS5cZ)アドレスをスタックにプッシュすることについては何ですか? – chris