Was ist ein praktischer Anwendungsfall für die "Adresse des Arrays"?

8

(Disclaimer: Pointer in C ++ ist ein sehr beliebtes Thema und ich bin gezwungen zu glauben, dass jemand vor mir diesen Punkt bereits angesprochen hat. Ich konnte jedoch keinen weiteren Hinweis finden. Bitte korrigieren Sie mich und fühlen Sie sich frei um diesen Thread zu schließen, wenn ich falsch liege.)

Ich bin auf viele Beispiele gestoßen, die zwischen dem Zeiger auf das erste Element des Arrays und dem Zeiger auf das Array selbst unterscheiden. Hier ist ein Programm und seine Ausgabe:

%Vor%

Ausgabe:

%Vor%

Wie erwartet, ergibt das Hinzufügen von 1 zu beiden unterschiedliche Ergebnisse. Aber ich bin nicht in der Lage, einen praktischen Nutzen für etwas wie p_whole zu sehen. Sobald ich die Adresse des gesamten Array-Blocks habe, die man auch mit arr erhalten kann, was kann ich mit einem solchen Pointer machen?

    
dotslash 10.11.2015, 06:41
quelle

2 Antworten

11

Für einzelne Arrays halte ich das nicht für sinnvoll. Wo es nützlich wird, ist mit mehrdimensionalen Arrays, die Arrays von Arrays sind. Ein Zeiger auf eines der Sub-Arrays ist ein Zeiger auf die Zeile, und das Inkrementieren bringt einen Zeiger auf die nächste Zeile. Im Gegensatz dazu ist ein Zeiger auf das erste Element des inneren Arrays ein Zeiger auf ein einzelnes Element und das Inkrementieren bringt Sie zum nächsten Element.

    
Barmar 10.11.2015, 06:51
quelle
2

int (*)[10] ist ein "stärkerer" Typ als int* , da die Größe des Arrays beibehalten wird. so können Sie es übergeben, um zu funktionieren, ohne zusätzlichen Größenparameter zu übergeben:

%Vor%

versus

%Vor%     
Jarod42 10.11.2015 10:06
quelle

Tags und Links