Je ne comprends pas comment C stocke en mémoire un tableau. Dans l'exemple ci-dessous, l'adresse de str1 est égale à sa valeur. Whit ce que j'interprétais le résultat comme: l'adresse mémoire & str1 contient la valeur de l'adresse elle-même. Mais cela ne peut pas être le cas parce que d'autres exemples j'ai vu l'adresse de str1 contient la première valeur de la chaîne, qui dans ce cas est "H". Donc, ma question peut être: où est stockée l'adresse de str1?Emplacement de la mémoire C du nom de la baie
#include <stdio.h>
int main(int argc, char const *argv[]) {
char str1[] = "Hello World";
printf("%d %d %c\n",&str1,str1,str1[0]);
return 0;
}
Quand vous dites "adresse de' str1' ", que voulez-vous dire exactement par là? –
'str1' est un tableau donc l'utilisation de ce nom comme vous le faites ici a pour résultat son adresse. '& str1' évalue à la même valeur que' str1'. 'str1 [0]' est la valeur de son premier élément. –
@PaulOgilvie '& str1' et' str1' évaluent à la même valeur mais différents types. –