C Pointeur vers un tableau
Vous pouvez ignorer ce chapitre pour l'instant et y revenir après avoir compris le concept des pointeurs en C.
Si vous avez une certaine compréhension des pointeurs en C, vous pouvez commencer à étudier ce chapitre.
Le nom du tableau lui-même est un pointeur constant, ce qui signifie que sa valeur ne peut pas être modifiée ; une fois déterminé, il ne peut pas pointer ailleurs.
Par conséquent, dans la déclaration suivante :
double balance[50];
balance.paffecter àbalancel'adresse du premier élément :
double *p; double balance[10]; p = balance;
Utiliser un nom de tableau comme pointeur constant est autorisé, et inversement. Par conséquent, *(balance + 4) est un moyen autorisé d'accéder aux données de balance
Une fois que vous avez stocké l'adresse du premier élément dans p, vous pouvez utiliser *p, *(p+1), *(p+2), etc. pour accéder aux éléments du tableau. L'exemple suivant illustre ces concepts abordés ci-dessus :
Exemple
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
使用指针的数组值 *(p + 0) : 1000.000000 *(p + 1) : 2.000000 *(p + 2) : 3.400000 *(p + 3) : 17.000000 *(p + 4) : 50.000000 使用 balance 作为地址的数组值 *(balance + 0) : 1000.000000 *(balance + 1) : 2.000000 *(balance + 2) : 3.400000 *(balance + 3) : 17.000000 *(balance + 4) : 50.000000
Dans l'exemple ci-dessus, p est un pointeur vers double, ce qui signifie qu'il peut stocker l'adresse d'une variable de type double. Une fois que nous avons l'adresse dans p,*pdonnera la valeur stockée à l'adresse correspondante dans p, comme démontré dans l'exemple ci-dessus.
autres extensions