Hallo an alle ich habe eine frage zu Array und Zeiger in MC es mir aus der vorlesung bekannt dass man mit mit zeiger und array so um geht , - so definiert man ein Array : > int Array[32] ; dh Array mit 32 int -Variablen ( Array[0]..... Array[31] ) >int *Array[20]; dh ein Array mit 20 zeigern auf int Variable also mit * liest man bzw zeigt man der inhalt von der zelle . oder habe ich die geschichte falsch verstanden? jetzt habe ich mit c code für MC von freescale (MPC5604..) was zu tun. der code ist wie hier in diesem forum gereglt als Anhang . kann jemand mir eklären wenn die "if" true ist dann wird die kft PCR durchgefürt und den STATE auf 0x0400uL oder 0x0800uL (falls es if false ist ) und jetzte wenn ich mit der maus in der Entwicklungsumgebung auf die PCR_PA_AM2 gehe , erscheint mir ein fester mit sowas ((*(volatile struct PCR_tag *) 0xC3F90040).PCR[PCRCh].R = 0x0800uL) jetzt wie kann ich diese zeile verstehen , ist das ein zeiger ? was heißt den Punkt vordem PCR ?
balou Mammadou schrieb: > - so definiert man ein Array : > >> int Array[32] ; > dh Array mit 32 int -Variablen ( Array[0]..... Array[31] ) richtig > >>int *Array[20]; > dh ein Array mit 20 zeigern auf int Variable auch richtig > also mit * liest man bzw zeigt man der inhalt von der zelle . oder habe > ich die geschichte falsch verstanden? Wenn du damit eine Beziehung zwischen deiner ersten Aussage und deiner zweiten herstellen willst: nein. Das sind einfach nur 2 Arrays. In dem einen können int abgelegt werden und im anderen die Adressen von int-Variablen. Aber abgesehen davon, haben die beiden nichts miteinander zu tun. int i; i ist eine int Variable. D.h. in der Variablen steht direkt eine ganze Zahl. zb 42 i +-----+ | 42 | +-----+ Kommt der * dazu, dann spricht man von einer Pointervariablen. int j; int * k; k ist so eine Pointer-Variable. Ihre Inhalt ist die Adresse im Speicher unter der der int zu finden ist. Das ist ein bischen so, wie das Funktionieren eines Stichwortverzeichnisses in einem Buch. Im Stichwortverzeichnis steht nicht direkt die 'Erklärung, was eine elektrische Spannung ist' sondern wo im Buch diese Erklärung zu finden ist. (Die Seitenzahl ist die 'Adresse' dieser Erklärung. Die Erklärung steht irgendwo im Buch und im Stichwortverzeichnis findet sich nur ihre Adresse) k ist also so eine Variable. So kann die Adresse eines int speichern. j Ist so eine Variable, die einen int beherbergen kann (j ist eine Seite im Buch, k ist ein Eintrag im Stichwortverzeichnis). Daher kann k auf j zeigen j = 42; k = &j; k +-------+ | o----------------------+ j +-------+ | +------+ +--->| 42 | +------+ > der code ist wie hier in diesem forum gereglt als Anhang . kann jemand > mir eklären wenn die "if" true ist dann wird die kft PCR durchgefürt > und den STATE auf 0x0400uL oder 0x0800uL (falls es if false ist ) Ich schau mir das mal an und mach einen neuen Post.
Karl Heinz Buchegger schrieb: > Ich schau mir das mal an und mach einen neuen Post. Ooops. Ich nehms zurück. Ein DOC File mach ich grundsätzlich nicht auf. Poste dein C-File einfach als C-File. Du brauchst es nicht in ein DOC verpacken und auch nicht in ein PDF sondern du hängst es einfach so an, wie du es hast. Keine Arbeit für dich - keine Arbeit für uns.
> was heißt den Punkt vordem PCR ?
In erster Linie bedeutet er, dass du ganz dringend ein C-Buch brauchst.
Und nein: Der 'Member of struct' Operator ist nichts exotisches. Den
MUSS jeder C-Programmierer erkennen, wenn er ihn sieht. Das ist so, wie
wenn du in
int j, k, l;
j = k + l;
fragst: Was bedeutet das +
Danke Karl Heinz Buchegger vielen dank für deine Erklärung bezüglic array und zeiger , ich denke ich habe es soweit verstanden , du hast auch recht mit dem buch , bin gerade bei der selbst einarbeitung
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.