Latest web development tutorials

C pointeur sur un tableau

C tableau C tableau

Vous pouvez sauter ce chapitre, puis attendre pour comprendre le concept de pointeurs C, venu pour apprendre dans ce chapitre.

Si vous comprenez le concept de pointeurs en langage C, alors vous pouvez commencer à apprendre dans ce chapitre. nom Array est un pointeur constant pointant vers le premier élément du tableau. Par conséquent, dans la déclaration suivante:

double balance[50];

l'équilibre est un point et l' équilibre [0] pointeur qui adresse le premier élément du tableau de la balance.Par conséquent, le fragment de programme suivantp attribué au premier élément d'équilibreà l'adresse suivante:

double *p;
double balance[10];

p = balance;

Utilisez un nom de tableau de pointeur constant est légitime, et vice versa. Par conséquent, * (solde + 4) est un équilibre [4] moyen légitime d'accéder aux données.

Une fois que vous avez l'adresse mémorisée dans le premier élément de p, vous pouvez utiliser * p, * (p + 1), * (p + 2) et ainsi d'accéder à des éléments du tableau. L'exemple suivant illustre ces concepts décrits ci-dessus à:

#include <stdio.h>

int main ()
{
   /* 带有 5 个元素的整型数组 */
   double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
   double *p;
   int i;

   p = balance;
 
   /* 输出数组中每个元素的值 */
   printf( "使用指针的数组值\n");
   for ( i = 0; i < 5; i++ )
   {
       printf("*(p + %d) : %f\n",  i, *(p + i) );
   }

   printf( "使用 balance 作为地址的数组值\n");
   for ( i = 0; i < 5; i++ )
   {
       printf("*(balance + %d) : %f\n",  i, *(balance + i) );
   }
 
   return 0;
}

Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:

Utilisation de la valeur du tableau de pointeur * (p + 0): 1,000,000000
* (P + 1): 2,000000
* (P + 2): 3,400000
* (P + 3): 17,000000
* (P + 4): 50,000000
Utiliser la valeur de la balance comme une adresse de réseau * (solde + 0): 1,000,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 un pointeur de type double, ce qui signifie qu'il peut être stocké dans une variable de type double. Une fois que nous avons l'adressep, * valeur p de p sera donné l'adresse de mémoire correspondante, comme le montrent les exemples ci - dessus.

C tableau C tableau