1次元配列の場合、配列要素へのアクセスに問題はありません。例えば -多次元配列をポインタ形式で表現する方法は?
#include<typeinfo>
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
int main()
{
int a[3] = {1, 2, 3};
cout << *(a + 0);
return 0;
}
しかし、私は2次元配列のためにしようとしていたとき、私は種類の出力を取得しています -
#include<typeinfo>
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
using std::string;
int main()
{
int a[][3] = {1, 2, 3};
cout << *(a + 2);
return 0;
}
出力 -
0x7ffca0f7ebcc
どのようにすることができます最初の例で説明した形式で出力を2にします(行のメジャーまたは列のメジャー順で2を取得しますが、C++では行のメジャー配列表現に従います)。生のアレイについて
これは、2番目の場合の '*(a + 2)'が 'int(*)[3]'の結果をもたらすため、ポインタが出力されるためです。今、あなたはどのようにポインタからオブジェクトを取得しますか? (また、無関係のインクルードと使用方法は何ですか...) – DeiDei