Array-Index und -Adresse geben denselben Wert zurück

8
%Vor%

Jetzt verstehe ich nicht, warum a und & a den gleichen Wert zurückgeben, was ist die Begründung und die praktische Anwendung dahinter? Auch was ist der Typ von & amp; a und könnte ich auch & amp; (& amp; a)?

    
n0nChun 04.09.2010, 12:02
quelle

1 Antwort

10
  

Nun verstehe ich nicht, warum a und & a den gleichen Wert zurückgeben, was die Begründung ist

a ist der Name des Arrays, das als Zeiger auf das erste Element des Arrays deklariert wird. &a ist nichts anderes als die Adresse des Arrays selbst, obwohl a und &a den gleichen Wert ausgeben, wenn ihre Typen unterschiedlich sind.

  

Was ist auch der Typ von & amp; a?

Zeiger auf ein Array mit drei int s, d. h. int (*)[3]

  

könnte ich auch & amp; (& amp; a)?

?

Nein, die Adresse des Operators erfordert, dass sein Operand ein L-Wert ist. Ein Array-Name ist ein nicht modifizierbarer L-Wert, also ist &a legal, aber &(&a) nicht.

Druckart von &a ( C ++ nur )

%Vor%

P.S:

Verwenden Sie %p Formatspezifizierer zum Drucken der Adresse (mit falschem Formatbezeichner in printf ruft Undefined Behavior auf)

    
Prasoon Saurav 04.09.2010, 12:11
quelle

Tags und Links