ポインタへの参照を渡すさまざまな方法を理解しようとしています。1つの実装にはポインター参照の受け渡しが含まれ、もう1つの実装にはポインターの受け渡しが含まれます。
*&
後者のC++で""がどのように解析されているかを理解しようとしています。
ポインタPが指すものを変更したいとします。ポインターまたはポインターへの参照のいずれかを渡すことができます。ポインタへの参照を渡すと、実装は次のようになります
void changePointer(int ** pp){
//stuff that changes P from main();
}
//...
int main(){
int a = 7;
int * P = &a;
changePointer(&P);
return 0;
}
上記では、changePointerのパラメーターは次のように解析されています。
void changePointer(int ** pp){
//int ** pp = &P; //where P is the integer pointer being passed by main
...
ただし、参照ではなくポインタを渡したい場合は、主に次のように言います。
//...
changePointer(P);
//...
changePointerでは、パラメーターを次のように変更します。
void changePointer(int *& pp)
今、私はこれがどのように機能しているか、またはこれをどのように読むかについての手がかりがありません。これは次のように解析されていますか?
int * pp =&P?