Jag skulle just posta det att du skriver ut *pekaren* till första
tecknet i din char[4], inte innehåller som sådant, men det såg
ju flera...

Men din fråga. Ja, båda skrivsätten kommer att allokera 4 bytes i minnet.
Men C i sig hanterar dessa "variabler" ganska olika.
När du skriver LongLBA så är det alltid innehållet/värdet som används.
Du kan även ange att du vill använda andessen med "&LongLBA".
När du skriver CharLBA så kommer C att avända *adressen* till CharLBA,
inte innehållet som sådant. Du kan komma åt innehåller på några olika sätt.
Du har redan fått metoden med en cast, och det fungerar ju. Här är ett par till.
Det som är inläst är "ABCD" (41424344 i hex) från en fil:
Kod: Markera allt
printf("\nMed en cast:\n");
printf("Relative LBA address 0x%08X\n", *((unsigned long*)CharLBA));
printf("\nMed en pekarreferens:\n");
printf("Relative LBA address 0x%08X\n", *CharLBA);
printf("Relative LBA address 0x%08X\n", *CharLBA+1);
printf("Relative LBA address 0x%08X\n", *CharLBA+2);
printf("Relative LBA address 0x%08X\n", *CharLBA+3);
printf("\nMed ett array index:\n");
printf("Relative LBA address 0x%08X\n", CharLBA[0]);
printf("Relative LBA address 0x%08X\n", CharLBA[1]);
printf("Relative LBA address 0x%08X\n", CharLBA[2]);
printf("Relative LBA address 0x%08X\n", CharLBA[3]);
Kod: Markera allt
Med en cast:
Relative LBA address 0x44434241
Med en pekarreferens:
Relative LBA address 0x00000041
Relative LBA address 0x00000042
Relative LBA address 0x00000043
Relative LBA address 0x00000044
Med ett array index:
Relative LBA address 0x00000041
Relative LBA address 0x00000042
Relative LBA address 0x00000043
Relative LBA address 0x00000044
Relative LBA address 0x44434241