Ist das ein pointers auf einen pointers auf den Start eines Arrays?

Ich habe gerade jemandem mit einem Code geholfen. Er hatte das:

char dataArray[10]; 

Dann wollte man einen pointers auf den Anfang des Arrays bekommen. Anstatt zu verwenden:

 &dataArray[0] 

oder nur

 dataArray 

Er verwendete

 &dataArray 

Hatte er dort einen pointers auf einen pointers? Ich bin mir nicht sicher, was &dataArray ihm geben würde.

  • &dataArray[0] hat den Typ char * . Das ist ein pointers auf char .
  • dataArray ist vom Typ char[10]
  • &dataArray den Typ char (*)[10] . Das ist ein pointers auf ein Array.

Abgesehen davon ist der Wert gleich, dh sie zeigen auf dieselbe Adresse, aber ihre Typen müssen nicht kompatibel sein.

Keiner von ihnen ist hier ein pointers zum pointers . Sie sind nur pointers mit verschiedenen Typen.

Hinweis: Da die Eigenschaft zum Verfall des Arrays verwendet wird, wird char [100] zum Beispiel in char * zerfallen, wenn es als Attribut einer function übergeben wird.

dataArray und & dataArray [0] zeigen auf die Adresse des ersten Index des Arrays, so dass sie dasselbe sind, aber & dataArray zeigt auf die Adresse des gesamten Arrays oder wir können sagen, dass es die Adresse gibt, wo das ganze 10 Index-Array ist liegt (als Ganzes)