Taille entier en C

Résolu
Bonjour,

Quelle taille en octets prend un entier (integer) en mémoire dans le langage C ?

Merci.

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    4 octets. Tu peux regarder l'article Langage C - Les types de données, ou alors tester par toi même en faisant size_t n = sizeof(int);
    1. Salut,

      Voila ce que j'ai mis mais ca n'a pas marché :

      #include<stdio.h> 
      
      void main(){ 
       size_t n = sizeof(int); 
        
       printf(n); 
        
        
      }


      Ou est l'erreur ?
    2. Contributeur
      hello
      printf("%d\n", n);
    3. c'est pas forcément 4 octets .
    4. merci les amis :D
  2. Salut,

    tu peux consulter ce lien :

    https://www.commentcamarche.net/contents/196-langage-c-les-types-de-donnees

    Sinon tu peux faire un petit code de type :

    char taille_entier;
    taille_entier = sizeof (int);

    et imprimer la valeur de la variable taille_entier.
    1. Modérateur
      Exactement la même réponse mais elles se sont croisées... si j'avais su je t'aurais laissé la main ;-)
    2. Salut,

      Merci pour la réponse mais ce code n'a pas marché !! Je n'ai pas pu l'exécuter.
  3. Contributeur
    Bonjour,

    La taille des opérateurs (à part du char) n'est pas fixe.
    De plus, la taille ne s'exprime pas en octet mais en byte d'au moins 8 bits. Généralement, cela revient au même, mais pas nécessairement.
    1. octet = byte en anglais
    2. Merci fiddy ^^
    3. Contributeur
      Non, byte = multiplet. Et en C, un char représente la plus petite mesure, soit un byte d'au moins 8 bits.
  4. heu tous dépend du nombre de bit utilise pour l encodage du nombre, et du nombre de chiffres de ce dernier.

    8 , 16 , 32 , 64 ou 128 bit ..
    1. Contributeur
      Sauf erreur de ma part, la question demande la taille d'un integer. Et ça ça ne dépend pas du nombre. Que ce soit 5 ou 5000, l'integer prendra la même taille.
      Par contre, cela dépend de l'implémentation, de la taille processeur, ...
    2. ah bon donc 5 et 5 000 000 000 000 000 000 ca fera la meme taille ?
    3. Contributeur
      ah bon donc 5 et 5 000 000 000 000 000 000 ca fera la meme taille ?
      Encore une fois, on ne parle pas de nombre mais de la taille du type "integer".
      Lorsque dans un programme, tu définis un type int, celui-ci prend une taille en byte. Par exemple 4 bytes. Ainsi la taille 5, 10, 5000, 30 000 feront la même taille. Pour preuve, teste sizeof (5), sizeof(30000). En revanche, ton 5 000 000 000 ... n'est pas un integer, donc c'est hors sujet.
    4. heu si je ne m abuse : interger = un nombre entier. et ce sans limite de chiffres dans le dit nombre ...
      voir la :
      https://en.wikipedia.org/wiki/Integer
      et la :

      https://fr.wikipedia.org/wiki/Entier_relatif

      donc oui, mon 5 000 000 000 000 000 est bien un nombre entier, donc un interger.

      un nombre entier est un nombre qui ne comporte pas de virgule.

      revoir ses basse en math ca peu aide a évite de dire n importe quoi.
    5. Modérateur
      On ne parle pas de NOMBRES ENTIERS, mais de VARIABLES DE TYPE INT, c'est très différent.