8. Funktionen mit Arrays
Motivation Call by Value als Übergabetechnik kommt nur bei einfachen Variablen zum Einsatz. Das Anlegen von "Kopien" ist da...
Motivation Call by Value als Übergabetechnik kommt nur bei einfachen Variablen zum Einsatz. Das Anlegen von "Kopien" ist da akzeptabel. Bei Arrays ist es dagegen weniger sinnvoll, da Arrays oft viel Speicherplatz belegen. Daher werden in diesem Fall der Funktion durch den Compiler alle relevanten Informationen über das Array übermittelt, um mit den Originaldaten arbeiten zu können. Kopien sind damit überflüssig. Man benötigt daher in einer Funktion: 1) 2) 3) 4)
Die Information, dass es sich um ein Array handelt: [] angeben Die Länge eines Arrayelements: ergibt sich aus demTyp Die Anfangsadresse des Arrays: ->erledigt der Compiler (da Array) Zugriff auf Arrayelemente: wie bisher mittels Index
Der Zugriff auf eiArrayelement erfolgt über dessen Adresse gemäß Adresse = Anfangsadresse(Array) + Index * Länge eines Elements Da diese Angaben der aufrufenden Funktion übermittelt werden, kann mit den „Originaldaten“ gearbeitet werden. Der Index ist dann üblicherweise eine lokale Größe der Funktion. Dr. Norbert Spangler /Programmieren
25.11.2016
2
Einfache Beispiele void arrayin ( int n, char p_x[]) // Definition {//Array lesen for (int i=0;i>p_x[i]; } void arrayout ( int n, char p_x[]) {//Array ausgeben cout