Taille entier en C

Résolu
choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

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

Merci.

4 réponses

KX Messages postés 16760 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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);
2
choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   7
 
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 ?
0
dubcek Messages postés 18788 Date d'inscription   Statut Contributeur Dernière intervention   5 633
 
hello
printf("%d\n", n);
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
c'est pas forcément 4 octets .
0
choco90
 
merci les amis :D
0
ejjall Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   1
 
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
KX Messages postés 16760 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Exactement la même réponse mais elles se sont croisées... si j'avais su je t'aurais laissé la main ;-)
0
choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   7
 
Salut,

Merci pour la réponse mais ce code n'a pas marché !! Je n'ai pas pu l'exécuter.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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.
0
choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   7
 
octet = byte en anglais
0
choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci fiddy ^^
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Non, byte = multiplet. Et en C, un char représente la plus petite mesure, soit un byte d'au moins 8 bits.
0
rafit jad kuldinger Messages postés 7689 Date d'inscription   Statut Membre Dernière intervention  
 
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 ..
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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, ...
0
rafit jad kuldinger Messages postés 7689 Date d'inscription   Statut Membre Dernière intervention  
 
ah bon donc 5 et 5 000 000 000 000 000 000 ca fera la meme taille ?
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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.
0
rafit jad kuldinger Messages postés 7689 Date d'inscription   Statut Membre Dernière intervention  
 
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.
0
KX Messages postés 16760 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
On ne parle pas de NOMBRES ENTIERS, mais de VARIABLES DE TYPE INT, c'est très différent.
0