Quelle sera la sortie du code C suivant. En supposant qu'il fonctionne sur Little machine boutiste, où court int prend 2 octets et char prend 1 octet.Sortie du code C suivant
#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;
}
Dans ma machine, il a donné
-108
Je ne sais pas si ma machine est peu endian ou big endian. J'ai trouvé quelque part qu'il devrait donner
148
comme sortie. Parce que les 8 bits de poids faible de 404 (c.-à-d. Élément c [4]) sont 148. Mais je pense qu'en raison de "% d", il devrait lire 2 octets de la mémoire à partir de l'adresse de c [4].
L'indicateur de compilation peut changer le caractère par défaut en signe/non signé, etc. –