Grundlagen der Programmiersprache C

int habe 4 Byte und ein Zeiger 8 Byte. Ein Zeiger p auf int hat den Wert (die Adresse) 0x1000. Welchen Wert hat p + 3?

  1. A0x100C
  2. B0x1012
  3. C0x1018
Antwort und Erläuterung anzeigen

Antwort: A. 0x100C

Addiert man eine Ganzzahl zu einem Zeiger, bewegt er sich in Einheiten der Größe des Typs, auf den er zeigt. int hat 4 Byte, daher zeigt p + 3 auf die Stelle 3 × 4 = 12 Byte weiter, also 0x1000 + 0xC = 0x100C. p + 3 ist die Adresse des Array-Elements p[3], und *(p + 3) bedeutet dasselbe wie p[3]. Ein Zeiger auf char bewegt sich in Schritten von 1 Byte, ein Zeiger auf double (8 Byte) in Schritten von 8 Byte.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Programmiersprache C

  1. int habe 4 Byte und ein Zeiger 8 Byte. Welche Ausgabe erzeugt das obige Programm bei der Ausführung?
  2. int habe 4 Byte. Welche Ausgabe erzeugt der obige Code bei der Ausführung?
  3. Welche Ausgabe erzeugt der obige Code mit einem char-Array, das eine Zeichenkette enthält, bei der Ausführung?
  4. Nach den obigen Deklarationen wird eine der Anweisungen A „p = t;“, B „*p = 'x';“, C „q = t;“ oder D „*q = 'x';“ geschrieben. Welche Kombination führt zu Kompilierfehlern?
  5. Welche Ausgabe erzeugt das obige Programm mit einem Array von Funktionszeigern bei der Ausführung?