HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Was ist Zeiger?
|
In c ist ein Zeiger eine Variable, die auf zeigt oder eine Gedächtnisposition bezieht, in der Daten gespeichert werden. Im Computer hat jede Speicherzelle eine Adresse, die verwendet werden kann, um diese Position also eine Zeigervariable Punkte zu einer Gedächtnisposition zugänglich zu machen, die, wir zugänglich machen können und den Inhalt dieser Gedächtnisposition über den Zeiger ändern.
|
Zeigererklärung:
|
Ein Zeiger ist eine Variable, die die Gedächtnisposition einer anderen Variable in den shich Daten wird gespeichert enthält. Mit Zeiger beginnst du, indem Sie die Art der Daten spezifizieren, die in der Position gespeichert werden. Das Sternchen hilft, dem Compiler zu erklären, daß du eine Zeigervariable verursachst. Schließlich mußt du den Namen der Variable geben. Die Syntax ist wie gezeigt unten.
|
|
Das folgende Beispiel veranschaulichen das declataion der Zeigervariable
|
|
Adresse Operator:
|
Sobald wir eine Zeigervariable dann erklären, müssen wir sie auf etwas zeigen, das wir dies tun können, indem wir dem Zeiger die Adresse der Variable zuweisen du wie in das folgende Beispiel zeigen möchtest:
|
|
Der oben genannte Code erklärt, daß die Adresse, in der numerisch, Speicher in den variablen PTR ist. Der variable PTR hat den Wert 21260, wenn numerisch, wird gespeichert in der Adresse des Gedächtnisses 21260 dann
|
Das folgende Programm veranschaulichen die Zeigererklärung
|
/* A program to illustrate pointer declaration*/
main()
{
int *ptr;
int sum;
sum=45;
ptr=&sum
printf ("\n Sum is %d\n", sum);
printf ("\n The sum pointer is %d", ptr);
}
|
|
Zeigerausdrücke u. Zeigerarithmetik:
|
In den Ausdrücken wie andere Variablen Zeigervariablen kann verwendet werden. Z.B. wenn p1 und p2 richtig und erklärte Zeiger initialisiert werden, dann sind die folgenden Aussagen gültig. |
y=*p1**p2;
sum=sum+*p1;
z= 5* - *p2/p1;
*p2= *p2 + 10;
|
|
C erlaubt uns, Ganzzahlen zu zu subtrahieren oder Ganzzahlen von den Zeigern sowie hinzuzufügen, um einen Zeiger vom anderen zu subtrahieren. Wir können kurze Handoperatoren mit Zeigern p1+= auch verwenden; sum+=*p2; etc., indem wir Vergleichsoperatoren verwenden, können wir Zeiger wie die Ausdrücke wie p1 >p2, p1==p2 und p1 auch vergleichen! =p2 werden erlaubt.
|
Das folgende Programm veranschaulichen den Zeigerausdruck und die Zeigerarithmetik
|
/*Program to illustrate the pointer expression and pointer arithmetic*/
#include< stdio.h >
main()
{
int ptr1,ptr2;
int a,b,x,y,z;
a=30;b=6;
ptr1=&a;
ptr2=&b;
x=*ptr1+ *ptr2 6;
y=6*- *ptr1/ *ptr2 +30;
printf("\nAddress of a +%u",ptr1);
printf("\nAddress of b %u",ptr2);
printf("\na=%d, b=%d",a,b);
printf("\nx=%d,y=%d",x,y);
ptr1=ptr1 + 70;
ptr2= ptr2;
printf("\na=%d, b=%d,"a,b);
}
|
|
Zeiger und Funktion:
|
In einer Funktion Erklärung werden der Zeiger sehr viel benutzt. Manchmal nur mit einem Zeiger kann eine komplizierte Funktion leicht dargestellt werden und Erfolg. In einer Funktion Definition kann der Verbrauch der Zeiger in zwei Gruppen eingestuft werden.
- Referenzaufruf
- Wertaufruf.
|
Wertaufruf:
|
Wir haben gesehen, daß es eine Verbindung gibt, die zwischen den formalen und Aktualparametern hergestellt wird, wenn eine Funktion hervorgerufen wird. Sobald Zwischenspeicher verursacht wird, wo der Wert von Aktualparametern gespeichert wird. Die Formalparameter hebt seinen Wert vom Speicherbereich die Einheit der Datenübertragung zwischen formalem auf und Aktualparametern erlaubt die Aktualparametereinheit der Datenübertragung wird verwiesen als Wertaufruf. Der entsprechende Formalparameter stellt immer eine lokale Variable in der benannten Funktion dar. Der gegenwärtige Wert des entsprechenden Aktualparameters wird der Ausgangswert des Formalparameters. Im Körper des Aktualparameters, kann der Wert des Formalparameters geändert werden. Im Körper des Unterprogramms, kann der Wert des Formalparameters durch Anweisung oder Eingang Aussagen geändert werden. Dieses ändert nicht den Wert der Aktualparameter.
|
/* Include< stdio.h >
void main()
{
int x,y;
x=20;
y=30;
printf("\n Value of a and b before function call =%d %d",a,b);
fncn(x,y);
printf("\n Value of a and b after function call =%d %d",a,b);
}
fncn(p,q)
int p,q;
{
p=p+p;
q=q+q;
}
|
|
Referenzaufruf:
|
Die Adresse sollte Zeiger sein, wenn wir Adresse zu einer Funktion das Parameterempfangen führen. Indem man Zeiger verwendet, bekannt der Prozeß des Benennens einer Funktion, um die Adresse der Variable zu führen als Referenzaufruf. Die Funktion, die durch Hinweis gebenannt wird, kann den Wert der Variable ändern, die im Anruf verwendet wird.
|
/* example of call by reference*?
/* Include< stdio.h >
void main()
{
int x,y;
x=20;
y=30;
printf("\n Value of a and b before function call =%d %d",a,b);
fncn(&x,&y);
printf("\n Value of a and b after function call =%d %d",a,b);
}
fncn(p,q)
int p,q;
{
*p=*p+*p;
*q=*q+*q;
}
|
|
Zeiger zu den Reihen:
|
eine Reihe ist wirklich wie Zeiger sehr viel ähnlich. Wir können erklären, da internes *a eine Adresse ist, weil a [0] das Reihen erste Element als a [0] und *a ist auch eine Adresse, ist die Form der Erklärung auch äquivalent. Der Unterschied ist Zeiger kann auf dem links des Zuweisungsoperators erscheinen und es ist a ist eine Variable, die lvalue ist. Der Reihe Name kann nicht als die linke Seite des Zuweisungsoperators erscheinen und ist konstant.
|
/* A program to display the contents of array using pointer*/
main()
{
int a[100];
int i,j,n;
printf("\nEnter the elements of the array\n");
scanf(%d,&n);
printf("Enter the array elements");
for(I=0;I< n;I++)
scanf(%d,&a[I]);
printf("Array element are");
for(ptr=a,ptr< (a+n);ptr++)
printf("Value of a[%d]=%d stored at address %u",j+=,*ptr,ptr);
}
|
|
Zeiger und Strukturen
|
Wir wissen, daß der Name eine Reihe der Standplätze für Adresse seines zeroth Elements, welches das gleiche Konzept Namen von Strukturmatrizes beantragt. Annehmen, daß Einzelteil eine Feldvariable der struct Art ist. Die folgende Erklärung betrachten:
|
struct products
{
char name[30];
int manufac;
float net;
item[2],*ptr;
|
|
dieser Aussage PTR als Gegenstände Zeigerdaten der Art struct Produkte und erklärt Einzelteil als Reihe von zwei Elementen, jede Art struct Produkte.
|
Zeiger auf Zeiger
|
Ein Zeiger enthält Abfallwert, bis er initialisiert ist. Da Compiler nicht ermitteln können, können die Störungen möglicherweise nicht bekannt, bis wir das Programm daran erinnern durchführen, daß, selbst wenn wir in der Lage sind, ein falsches Resultat zu lokalisieren, uninitialized oder falsch Zeiger initialisierte, die es möglicherweise keinen Beweis für uns zu den vermutlich defekten Problemen in den Zeigern zur Verfügung stellen kann. Z.B. die Ausdrücke wie
|
*ptr++, *p[],(ptr).member
|
|
Schlüsselwörter:
Zeiger in C, doppelte Zeiger in c, Zeiger in der C-Sprache, Zeiger in c, Zeiger in c++, Funktion Zeiger in c, Funktion Zeiger in c mit Zeigern in c, Daten tippt c, Reihe Zeiger in c, Zeiger im c#, Zeiger zum Zeiger in c, Zeiger zu einem Zeiger in c, Zeiger zu den Funktionen in c, Akte Zeiger in c, Akte Zeiger in c ein
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|