Für eindimensionale Array habe ich kein Problem, Array-Element zugreifen. Zum Beispiel -Wie wird ein mehrdimensionales Array im Zeigerformat dargestellt?
#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;
}
Aber wenn ich für 2-dimensionalen Array bin versucht, bin ich Ausgang der Art bekommen -
#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;
}
Ausgang -
0x7ffca0f7ebcc
Wie kann ich Ausgabe als 2 erhalten (ich bekomme 2 entweder in der Reihenfolge der Zeilenhaupt- oder Spaltenhauptreihe, aber C++ folgt der Zeilenhauptarraydarstellung) in dem Format, das im ersten Beispiel beschrieben wird?
Das ist, weil '* (a + 2)' für den zweiten Fall ein 'int (*) [3]' Ergebnis liefert, so dass Sie einen Zeiger gedruckt bekommen. Nun, wie würdest du das Objekt vom Zeiger bekommen? (Auch was mit den irrelevanten Includes und Usings zusammenhängt ...) – DeiDei