誰かがリファレンスと参照外オペレータを理解できますか?ここで参照演算子と参照解除演算子について理解していますか?
である私が読んだ/これまでの理解:
int myNum = 30;
int a = &myNum; // a equals the address where myNum is storing 30,
int *a = &myNum; // *a equals the value of myNum.
私は混乱していた下のコードを見たとき:
void myFunc(int &c) // Don't understand this. shouldn't this be int *c?
{
c += 10;
cout<< c;
}
int main()
{
int myNum = 30;
myFunc(myNum);
cout<< myNum ;
}
int &c
は右に渡されているものへのアドレスを持っていますか?
私がc+=10
を実行したとき、それはメモリアドレスに10を加え、値30ではなく10を追加します。正しいですか?
しかし...私はこれを実行します...もちろん、すべての正しいインクルードとstuff ...それは動作します。それは40を印刷します。
この理解は正しいですか? ... –
あなたの言っていることは:void myFunc(int * c)を使ったmyFunc(&myNum)です。 myFunc(myNum)とvoid myFunc(int&c)と同じですか?あなたのお手伝いをありがとう。 :) –
アドレスのサイズがsizeof(unsigned long)またはvoid *タイプ –