Pointeur (langage c

Résolu
Bonjour,

j aimerais savoir ce que sygnifie (int **tab) en langage C car je suis debutant et jusqu a present je n ai jamais un lu un seul cours a ce sujet. Merci de bien vouloir me repondre.

--
La grace est trompeuse et la beaute est vaine

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. salut int = entier c-a-dir un nombre entier
    mais tab je ne souvient pas dsl hhhh
    1. ah oui mantenant je souvient alors :

      tab= ca veut dir tableau en met tab10 par exemple qui signifie un tableau de 10 chifre ou 10 caractere
      1. Contributeur
        Salut,
        Non pas du tout.
        tab, c'est surtout le nom de la variable. On aurait pu mettre toto.
    2. Contributeur
      Salut,
      int **tab;

      permet de déclarer un double pointeur. Cela permet notamment de faire un tableau à deux dimensions de manière dynamique. tab pointera sur une zone allouée dans le heap qui contiendra des int* (c'est-à-dire des pointeurs sur des entiers). Bien sûr, pour réaliser l'allocation des zones, il faudra utiliser malloc ou calloc.
      Cdlt
      1. tab je ne ponse pas qu'il signifie un nom de variable
        1. Contributeur
          Tab je ne ponse pas qu'il signifie un nom de variable
          Eh bien, tu penses mal ;-)

          int **tab; est de la forme : type variable; int** étant le type et tab la variable.
      2. oui alors **tab on peut le remplacer par e qu'on veut ?
        1. Contributeur
          Non, seul tab est le nom de ta variable. Les étoiles devant sont là pour signaler qu'il s'agit d'un double pointeur.
          Tu peux très bien mettre : int **toto.
      3. Modérateur
        Salut,

        Oui alors **tab on peut le remplacer par e qu'on veut ?

        C'est vrai qu'on peut écrire int **tab mais en réalité il ne s'agit pas de **tab de type int mais de tab de type int**

        Pour enlever toutes les doutes vaut peut être mieux écrire int** tab
        En ce qui concerne le nom de la variable (dans ton cas tab), tu peux utiliser quel nom tu veux en respectant biensûr quelques conditions

        - un mot cle (if, switch, close, case, while, do, etc.) ne doit pas être utiliser comme nom de variable
        - le nom de variable doit commencer avec un caractère alphabétique
        - pas d'accents dans le nom de variables
        - pas des espaces ou autres caractèr spécial dans le nom

        Bref, à utiliser :
        - les lettres (sans accent):
           de a à z
           de A à Z
        - les chiffres de 0 à 9 
        - le caractère souligné (underscore) _

        Pour eviter les conflits avec les déclarations dans les fichiers d'en-tête, vaut mieux eviter commencer le nom de variable avec un caractère souligné _