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 |
|
|