次のコードがあります。
#include <iostream>
using namespace std;
int main()
{
int g[] = {9,8};
int (*j)[2] = &g;
cout << "*(j):" << *(j) << endl;
cout << "j:" << j << endl;
cout << "&j:" << &j << endl;
cout << "&(*j)" << &(*j) << endl;
cout << "*(*j):" << *(*j) << endl;
return 0;
}
出力:
*(j):0x7fff5ab37c7c
j:0x7fff5ab37c7c
&j:0x7fff5ab37c70
&(*j)0x7fff5ab37c7c
*(*j):9
j は 2 つの整数の配列へのポインタだと思います。
&g は配列全体のアドレスです。
次に、配列全体のアドレスを保存します。
したがって、*(j) を使用すると、配列の最初の要素が逆参照されます。
しかし、結果は、*(j) が j と同じ値の配列アドレスを格納することを示しています。
これがどのように起こったのかわかりません。