Was wird die Ausgabe des folgenden C-Codes sein. Angenommen, es läuft auf einer Little-Endian-Maschine, wobei short int 2 Bytes und char 1 Byte benötigt.Ausgabe des folgenden C-Codes
#include<stdio.h>
int main() {
short int c[5];
int i = 0;
for(i = 0; i < 5; i++)
c[i] = 400 + i;
char *b = (char *)c;
printf("%d", *(b+8));
return 0;
}
In meiner Maschine gab es
-108
Ich weiß nicht, ob meine Maschine Little-Endian oder Big-Endian ist. Ich fand irgendwo, dass es geben sollte
148
als die Ausgabe. Weil niederwertige 8 Bits von 404 (d. H. Element c [4]) 148 ist. Aber ich denke, aufgrund von "% d" sollte es 2 Bytes aus dem Speicher lesen, beginnend mit der Adresse von c [4].
Kompilierungsflag kann das Standardzeichen in signed/unsigned etc ändern –