Breymann. C++ Einführung und professionelle Programmierung
Breymann. C++ Einführung und professionelle Programmierung Breymann. C++ Einführung und professionelle Programmierung
Interpretation von [ ], [ ][ ] usw. X sei alles, was vor dem letzten Klammernpaar steht. Y sei der Inhalt des letzten Klammerpaares. Der Compiler wandelt stets X[Y] in *((X)+(Y)) um! Auf X wird das Verfahren wiederum angewendet, bis alle Indexoperatoren aufgelöst sind, d.h.: matrix[i][j] = *(matrix[i]+j) = *(*(matrix+i)+j) matrix[i] = Zeiger auf den Beginn der i-ten Zeile Durch die Zeigerarithmetik wird die dahinterstehende Berechnung der tatsächlichen Adresse verborgen, die ja noch die Größe der Datenelemente eines Arrays berücksichtigen muss. Die Position (matrix + i) liegt daher (i mal sizeof(matrix[0])) Bytes von der Stelle matrix entfernt. Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 244 zurück Ende
Aufgaben 6.1 Die Äquivalenz von *(kosten+i) und kosten[i] ist bekannt. Anstatt (kosten+i) könnte man genausogut (i+kosten) schreiben, das Ergebnis der Addition wäre das gleiche. Ist es dann richtig, dass die Schreibweise i[kosten] äquivalent ist zu kosten[i]? 6.2 Geben Sie den für matrix[2][3] benötigten Speicherplatz in Byte an, wenn sizeof(int) als 4 angenommen wird. An welcher Bytenummer beginnt das Element matrix[i][j] relativ zum Beginn das Arrays? Breymann C++, c○ Hanser Verlag München Inhalt ◭◭ ◭ ◮ ◮◮ 245 zurück Ende
- Seite 193 und 194: 5. Die Art der Übergabe eines Obje
- Seite 195 und 196: (a) Diese Anweisung wird von links
- Seite 197 und 198: Natürlich kann von den Empfehlunge
- Seite 199 und 200: class Beispiel { int zahl; public:
- Seite 201 und 202: 5.8 Wie kommt man zu Klassen und Ob
- Seite 203 und 204: 5.8.1 Einige Analyse-Überlegungen
- Seite 205 und 206: 6. Intermezzo: Zeiger - Zeiger und
- Seite 207 und 208: . 99 . . 10123 . Adresse Name 10122
- Seite 209 und 210: int *ip2 = &i; bewirkt: ip ip2 ❩
- Seite 211 und 212: NULL-Zeiger Eigenschaften: • Ein
- Seite 213 und 214: . Index 17 35 112 -3 1000 . 0 1 2 3
- Seite 215 und 216: Zeiger und Arrays Zeiger und Arrays
- Seite 217 und 218: sizeof funktioniert jedoch nicht be
- Seite 219 und 220: 6.3 C-Zeichenketten C-Zeichenkette
- Seite 221 und 222: Vordefinierte Funktionen: Header #
- Seite 223 und 224: char-Arrays // Definition und Initi
- Seite 225 und 226: Beispiele: Schleifen mit Strings St
- Seite 227 und 228: Strings kopieren char* original = "
- Seite 229 und 230: 6.4 Dynamische Datenobjekte new: Er
- Seite 231 und 232: Dynamisch erzeugte Struktur Erzeugu
- Seite 233 und 234: 6.4.1 Freigeben dynamischer Objekte
- Seite 235 und 236: • Mit new erzeugte Objekte unterl
- Seite 237 und 238: 6.5 Mehrdimensionale C-Arrays 6.5.1
- Seite 239 und 240: Arrays als Funktionsparameter C-Arr
- Seite 241 und 242: void Tabellenausgabe2D(int (*T)[3],
- Seite 243: Funktion für statische zwei-dimens
- Seite 247 und 248: 6.5.2 Dynamisch erzeugte mehrdimens
- Seite 249 und 250: Eine dreidimensionale Matrix ist ei
- Seite 251 und 252: Feld von Zeigern auf Zeilen anlegen
- Seite 253 und 254: 6.6 Binäre Ein-/Ausgabe = unformat
- Seite 255 und 256: Lesen einer Datei double.dat mit do
- Seite 257 und 258: void upcase(char* s) { // In der AS
- Seite 259 und 260: 6.7.2 Gefahren bei der Rückgabe vo
- Seite 261 und 262: int main() { int a = 1700, b = 1000
- Seite 263 und 264: #include using namespace std; #incl
- Seite 265 und 266: 6.9 this-Zeiger • this ist ein Sc
- Seite 267 und 268: 7. Objektorientierung 2 - eine Stri
- Seite 269 und 270: const char& at(std::size_t position
- Seite 271 und 272: 7.1.1 friend-Funktionen Optionen f
- Seite 273 und 274: 3. friend-Funktion Falls es aus Lau
- Seite 275 und 276: • Die static-Funktion Anzahl() so
- Seite 277 und 278: Implementation der Klasse nummerier
- Seite 279 und 280: Der Kopierkonstruktor hat hier eine
- Seite 281 und 282: Der Destruktor vermerkt, dass es nu
- Seite 283 und 284: Anfang eines neuen Blocks { nummeri
- Seite 285 und 286: 7.2.1 Klassenspezifische Konstante
- Seite 287 und 288: template class simpleStack { publi
- Seite 289 und 290: • Der Datentyp T steht für einen
- Seite 291 und 292: cout
- Seite 293 und 294: 7.3.2 Stack mit statisch festgelegt
Aufgaben<br />
6.1 Die Äquivalenz von *(kosten+i) <strong>und</strong> kosten[i] ist bekannt.<br />
Anstatt (kosten+i) könnte man genausogut (i+kosten) schreiben,<br />
das Ergebnis der Addition wäre das gleiche. Ist es dann richtig,<br />
dass die Schreibweise i[kosten] äquivalent ist zu kosten[i]?<br />
6.2 Geben Sie den für matrix[2][3] benötigten Speicherplatz in Byte<br />
an, wenn sizeof(int) als 4 angenommen wird. An welcher Bytenummer<br />
beginnt das Element matrix[i][j] relativ zum Beginn<br />
das Arrays?<br />
<strong>Breymann</strong> <strong>C++</strong>, c○ Hanser Verlag München<br />
Inhalt ◭◭ ◭ ◮ ◮◮ 245 zurück Ende