Hallo Leute,
habe ein kleines Problem mit einem TypeCast.
Die Ausgabe des Ganzen sieht dann folgendermassen aus:
Aber warum?
Wenn ich denn Cast ohne Pointer mache, dann erhalte ich auch die richtigen Werte.
Wenn ich die Pointer unsigned deklariere geht es auch.
Aber ich verstehe das System nicht so ganz.
Ein Pointer enthält doch nur die Adresse des Wertes oder nicht?
Ich glaube ich werde Pointer nie verstehen. Es sei denn einer kann es mir erklären.
Gruß
Orca25
habe ein kleines Problem mit einem TypeCast.
Code:
#include <stdio.h>
#include <stdlib.h>
unsigned char reg[4];
int main(int argc, char *argv[]){
unsigned long al, bl, cl, dl;
char *ta, *tb, *tc, *td;
reg[0] = 0x70;
reg[1] = 0x7F;
reg[2] = 0x80;
reg[3] = 0xFF;
ta = & reg[0];
tb = & reg[1];
tc = & reg[2];
td = & reg[3];
al = *ta;
bl = *tb;
cl = *tc;
dl = *td;
printf("ac: %x; al: %x\n", reg[0], al);
printf("ac: %x; al: %x\n", reg[1], bl);
printf("ac: %x; al: %x\n", reg[2], cl);
printf("ac: %x; al: %x\n", reg[3], dl);
return 0;
}
ac: 70; al: 70
ac: 7f; al: 7f
ac: 80; al: ffffff80
ac: ff; al: ffffffff
Aber warum?
Wenn ich denn Cast ohne Pointer mache, dann erhalte ich auch die richtigen Werte.
Wenn ich die Pointer unsigned deklariere geht es auch.
Aber ich verstehe das System nicht so ganz.
Ein Pointer enthält doch nur die Adresse des Wertes oder nicht?
Ich glaube ich werde Pointer nie verstehen. Es sei denn einer kann es mir erklären.
Gruß
Orca25