Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

"c-typische" verwendung von zeigern


1. Java
2. Viren

1.1 VAR-Parameter Da es in C/C++ keine VAR-Parameter gibt, werden sie durch Zeiger emuliert bzw. realisiert, d.h. soll eine Funktion den Wert eines übergebenen Parameters verändern, so wird dieser Funktion die Adresse der zu ändernden Variable übergeben. In der Funktion wird die Adresse mittels eines Zeigers gespeichert respektive auf den Inhalt der Variable zugegriffen.

void tausche ( int* zahl1, int* zahl2 )

{
int hilfe;

hilfe = *zahl1;

*zahl1 = *zahl2;
*zahl2 = hilfe;

}


void main ( void )

{

int a = 3;
int b = 17;

tausche ( &a, &b );

}




1.2 Arrays & Zeigerarithmetik in C/C++


1.2.1 Arrays

Arrays sind konstante Zeiger auf einen Datenblock im Speicher, d.h. der Zeiger kann nicht verändert werden. Bei der Deklaration von einem Array wird Speicher reserviert.


Beispiele:

float v[3]; // ein Array aus 3 floats v[0]...v[2]
int a[2][5]; // zwei 5elementige int-Arrays
char* vpc[32]; // ein Array aus 32 char-Pointern


Beispiel 2:


void main ( void )

{
int feld [20]; // Ein Array mit 20 Integer-Werten wird angelegt
int* pI; // Ein Zeiger auf eine Integer-Variable

pI = feld; // pI besitzt die Startadresse des Arrays (1. Element)
feld = pI; // Nicht möglich, da sonst die Startadresse des Arrays

// verändert werden würde.

}

1.2.2 Zeigerarithmetik

Arithmetische Operationen (+, -, ++, --, .) mit Zeigern beziehen sich auf die Größe des Datentyps des Pointers. D.h. bei der Addition oder Subtraktion zu oder von einem Pointer verweist dieser auf den um die jeweilige Anzahl von Elementen (bei Integer z.B. 2 Bytes) weiter vorne oder hinten liegenden Speicherplatz. Subtrahiert man zwei Pointer von einander, so ergibt diese Berechnung die Anzahl der Elemente, um die der erste Pointer weiter oben im Speicher verweist.


void main ( void )

{
int feld [10];

int* pi1;
int* pi2;

float* pf;

pi1 = feld; // pi1 verweist auf 1. Element im Array ,feld'
pi2 = &feld [5]; // pi2 verweist auf 6. Element im Array ,feld'

printf ( "%d", pi2-pi1 ); // Ergebnis: 5

++ pi2; // Erhöhung um 2 Bytes (= sizeof ( int ))
++ pf; // Erhöhung um 4 Bytes (= sizeof ( float ))

}



1.3 Zeiger auf Zeiger & Zeigerarrays

1.3.1 Zeiger auf Zeiger

Ein Zeiger-auf-Zeiger ist ein Zeiger, dessen Inhalt die Adresse einer anderen Zeigervariablen enthält. Der Zeiger, auf den verwiesen wird, kann "verändert" werden, d.h. auf einen anderen Teil des Speichers versetzt werden. Ein Zeiger-auf-Zeiger wird durch ,**' definiert.


Beispiel:


void main ( void )

{
char puffer [10];

char ch;
char* z1;

char** zz;


z1 = puffer + 1; // z1 zeigt auf das 2. Zeichen in puffer
zz = &z1; // zz zeigt auf den Zeiger z1


strcpy ( puffer, "ABCDE" );

ch = puffer [3]; // ch enthält das 4. Zeichen von puffer (='D')
ch = *z1; // ch enthält den Inhalt von z1 (='B')
ch = **zz; // ch enthält den Inhalt auf dem Zeiger, auf den
// zz zeigt, also z1 (='B')

}


1.3.2 Zeiger-auf-Zeiger als VAR-Parameter

z.B.: long strtol (const char* zeichenkette, const char** endptr, int basis)



1.3.3 Zeigerarrays

Stellt ein Array aus lauter Zeigern dar.


Beispiel:

void main (int argc, char* argv [] ) // oder: int argc, char** argv

{
printf ( "Das Programm heißt %s", *argv );
}

 
 

Datenschutz
Top Themen / Analyse
indicator Bill Gates und das erfolgreichste Softwareunternehmen der Welt!!!
indicator Ausbau und Vervollständigung einer HP
indicator Drahtlose Netzwerke
indicator Das BIOS (Basic Input Output System)-
indicator Modemaufbau
indicator Berechtigungen bei Druckern
indicator X-Window-Systeme
indicator Aufbau einer normalen Suchmaschine
indicator Netzteil und Akku
indicator Spyware


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution