logo

Types de données en C

Un type de données spécifie le type de données qu'une variable peut stocker, comme un entier, un flottant, un caractère, etc.

Types de données C

Il existe les types de données suivants en langage C.

Les typesTypes de données
Type de données de baseint, char, float, double
Type de données dérivétableau, pointeur, structure, union
Type de données d'énumérationénumération
Type de données videvide

Types de données de base

Les types de données de base sont basés sur des entiers et des virgules flottantes. Le langage C prend en charge les littéraux signés et non signés.

La taille de la mémoire des types de données de base peut changer selon le système d'exploitation 32 ou 64 bits.

fichier ouvert en java

Voyons les types de données de base. Sa taille est donnée selon l'architecture 32 bits .

Types de donnéesTaille mémoireGamme
carboniser 1 octet−128 à 127
caractère signé1 octet−128 à 127
caractère non signé1 octet0 à 255
court 2 octets−32 768 à 32 767
signé court2 octets−32 768 à 32 767
court métrage non signé2 octets0 à 65 535
int 2 octets−32 768 à 32 767
signé en entier2 octets−32 768 à 32 767
entier non signé2 octets0 à 65 535
entier court 2 octets−32 768 à 32 767
signé court int2 octets−32 768 à 32 767
entier court non signé2 octets0 à 65 535
long int 4 octets-2 147 483 648 à 2 147 483 647
signé long int4 octets-2 147 483 648 à 2 147 483 647
entier long non signé4 octets0 à 4 294 967 295
flotter 4 octets
double 8 octets
longue double 10 octets

Int :

Entiers sont des nombres entiers sans aucune partie fractionnaire ou décimale, et les type de données entier est utilisé pour les représenter.

Il est fréquemment appliqué aux variables qui incluent valeurs , tel que comptes, indices , ou d'autres nombres numériques. Le type de données entier peut représenter les deux positif et nombres négatifs car il est signé par défaut.

Un int reprend 4 octets de mémoire sur la plupart des appareils, ce qui lui permet de stocker des valeurs comprises entre environ -2 milliards et +2 milliards.

Carboniser:

Les personnages individuels sont représentés par le type de données char . Généralement utilisé pour tenir ASCII ou Caractères du schéma de codage UTF-8 , tel que lettres, chiffres, symboles , ou virgules . Il y a 256 caractères qui peut être représenté par un seul caractère, qui occupe un octet de mémoire. Des personnages tels que 'A', 'b', '5', ou '$' sont placés entre guillemets simples.

Flotter:

Pour représenter des entiers, utilisez le type de données flottant . Les nombres flottants peuvent être utilisés pour représenter des unités fractionnaires ou des nombres avec des décimales.

Le type flotteur est généralement utilisé pour les variables qui nécessitent une très bonne précision mais peuvent ne pas être très précises. Il peut stocker des valeurs avec une précision d'environ 6 décimales et une gamme d'environ 3,4x1038 dans 4 octets de mémoire.

répertoire de liste du système d'exploitation python

Double:

Utilisez deux types de données pour représenter deux entiers flottants . Lorsqu'une précision supplémentaire est nécessaire, comme dans les calculs scientifiques ou les applications financières, elle offre une plus grande précision que le flottant.

Type double , qui utilise 8 octets de mémoire et a une précision d'environ 15 décimales, donne des valeurs plus grandes . C traite les nombres à virgule flottante comme des doubles par défaut si aucun type explicite n'est fourni.

 int age = 25; char grade = 'A'; float temperature = 98.6; double pi = 3.14159265359; 

Dans l'exemple ci-dessus, nous déclarons quatre variables : un variable entière pour l'âge de la personne, un variable de caractère pour la note de l'élève, un variable flottante pour la lecture de la température et deux variables pour la nombre pi.

Type de données dérivé

Au-delà des types de données fondamentaux, C prend également en charge types de données dérivés, y compris tableaux, pointeurs, structures, et les syndicats . Ces types de données donnent aux programmeurs la possibilité de gérer des données hétérogènes, de modifier directement la mémoire et de créer des structures de données complexes.

Tableau:

Un tableau, un type de données dérivé , vous permet de stocker une séquence de éléments de taille fixe du même type. Il fournit un mécanisme permettant de joindre plusieurs cibles des mêmes données sous le même nom.

L'index permet d'accéder aux éléments du tableau, avec un 0 indice pour la première entrée. La taille du tableau est fixée au moment de la déclaration et ne peut pas être modifiée pendant l'exécution du programme. Les composants du réseau sont placés dans des régions de mémoire adjacentes.

Voici un exemple de déclaration et d'utilisation d'un tableau :

 #include int main() { int numbers[5]; // Declares an integer array with a size of 5 elements // Assign values to the array elements numbers[0] = 10; numbers[1] = 20; numbers[2] = 30; numbers[3] = 40; numbers[4] = 50; // Display the values stored in the array printf(&apos;Values in the array: &apos;); for (int i = 0; i <5; i++) { printf('%d ', numbers[i]); } printf('
'); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Values in the array: 10 20 30 40 50 </pre> <h3>Pointer:</h3> <p>A <strong> <em>pointer</em> </strong> is a derived data type that keeps track of another data type&apos;s memory address. When a <strong> <em>pointer</em> </strong> is declared, the <strong> <em>data type</em> </strong> it refers to is <strong> <em>stated first</em> </strong> , and then the <strong> <em>variable name</em> </strong> is preceded by <strong> <em>an asterisk (*)</em> </strong> .</p> <p>You can have incorrect access and change the value of variable using pointers by specifying the memory address of the variable. <strong> <em>Pointers</em> </strong> are commonly used in <strong> <em>tasks</em> </strong> such as <strong> <em>function pointers, data structures</em> </strong> , and <strong> <em>dynamic memory allocation</em> </strong> .</p> <p>Here is an example of declaring and employing a pointer:</p> <pre> #include int main() { int num = 42; // An integer variable int *ptr; // Declares a pointer to an integer ptr = # // Assigns the address of &apos;num&apos; to the pointer // Accessing the value of &apos;num&apos; using the pointer printf(&apos;Value of num: %d
&apos;, *ptr); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Value of num: 42 </pre> <h3>Structure:</h3> <p>A structure is a derived data type that enables the creation of composite data types by allowing the grouping of many data types under a single name. It gives you the ability to create your own unique data structures by fusing together variables of various sorts.</p> <ol class="points"> <li>A structure&apos;s members or fields are used to refer to each variable within it.</li> <li>Any data type, including different structures, can be a member of a structure.</li> <li>A structure&apos;s members can be accessed by using the dot (.) operator.</li> </ol> <p>A declaration and use of a structure is demonstrated here:</p> <pre> #include #include // Define a structure representing a person struct Person { char name[50]; int age; float height; }; int main() { // Declare a variable of type struct Person struct Person person1; // Assign values to the structure members strcpy(person1.name, &apos;John Doe&apos;); person1.age = 30; person1.height = 1.8; // Accessing the structure members printf(&apos;Name: %s
&apos;, person1.name); printf(&apos;Age: %d
&apos;, person1.age); printf(&apos;Height: %.2f
&apos;, person1.height); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Name: John Doe Age: 30 Height: 1.80 </pre> <h3>Union:</h3> <p>A derived data type called a <strong> <em>union</em> </strong> enables you to store various data types in the same memory address. In contrast to structures, where each member has a separate memory space, members of a union all share a single memory space. A value can only be held by one member of a union at any given moment. When you need to represent many data types interchangeably, unions come in handy. Like structures, you can access the members of a union by using the <strong> <em>dot (.)</em> </strong> operator.</p> <p>Here is an example of a union being declared and used:</p> <pre> #include // Define a union representing a numeric value union NumericValue { int intValue; float floatValue; char stringValue[20]; }; int main() { // Declare a variable of type union NumericValue union NumericValue value; // Assign a value to the union value.intValue = 42; // Accessing the union members printf(&apos;Integer Value: %d
&apos;, value.intValue); // Assigning a different value to the union value.floatValue = 3.14; // Accessing the union members printf(&apos;Float Value: %.2f
&apos;, value.floatValue); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Integer Value: 42 Float Value: 3.14 </pre> <h2>Enumeration Data Type</h2> <p>A set of named constants or <strong> <em>enumerators</em> </strong> that represent a collection of connected values can be defined in C using the <strong> <em>enumeration data type (enum). Enumerations</em> </strong> give you the means to give names that make sense to a group of integral values, which makes your code easier to read and maintain. </p> <p>Here is an example of how to define and use an enumeration in C:</p> <pre> #include // Define an enumeration for days of the week enum DaysOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { // Declare a variable of type enum DaysOfWeek enum DaysOfWeek today; // Assign a value from the enumeration today = Wednesday; // Accessing the enumeration value printf(&apos;Today is %d
&apos;, today); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Today is 2 </pre> <h2>Void Data Type</h2> <p>The <strong> <em>void data type</em> </strong> in the C language is used to denote the lack of a particular type. <strong> <em>Function return types, function parameters</em> </strong> , and <strong> <em>pointers</em> </strong> are three situations where it is frequently utilized.</p> <h3>Function Return Type:</h3> <p>A <strong> <em>void return type</em> </strong> function does not produce a value. A <strong> <em>void function</em> </strong> executes a task or action and ends rather than returning a value.</p> <p> <strong>Example:</strong> </p> <pre> void printHello() { printf(&apos;Hello, world!
&apos;); } </pre> <h3>Function Parameters: </h3> <p>The <strong> <em>parameter void</em> </strong> can be used to indicate that a function accepts no arguments.</p> <p> <strong>Example:</strong> </p> <pre> void processInput(void) { /* Function logic */ } </pre> <h3>Pointers:</h3> <p>Any address can be stored in a pointer of type <strong> <em>void*</em> </strong> , making it a universal pointer. It offers a method for working with pointers to ambiguous or atypical types.</p> <p> <strong>Example:</strong> </p> <pre> void* dataPtr; </pre> <p>The <strong> <em>void data type</em> </strong> is helpful for defining functions that don&apos;t accept any arguments when working with generic pointers or when you wish to signal that a function doesn&apos;t return a value. It is significant to note that while <strong> <em>void*</em> </strong> can be used to build generic pointers, void itself cannot be declared as a variable type.</p> <p>Here is a sample of code that shows how to utilize void in various situations:</p> <pre> #include // Function with void return type void printHello() { printf(&apos;Hello, world!
&apos;); } // Function with void parameter void processInput(void) { printf(&apos;Processing input...
&apos;); } int main() { // Calling a void function printHello(); // Calling a function with void parameter processInput(); // Using a void pointer int number = 10; void* dataPtr = &amp;number; printf(&apos;Value of number: %d
&apos;, *(int*)dataPtr); return 0; } </pre> <p> <strong>Output:</strong> </p> <pre> Hello, world! Processing input... Value of number: 10 </pre> <h2>Conclusion:</h2> <p>As a result, <strong> <em>data types</em> </strong> are essential in the C programming language because they define the kinds of information that variables can hold. They provide the data&apos;s size and format, enabling the compiler to allot memory and carry out the necessary actions. Data types supported by C include <strong> <em>void, enumeration, derived</em> </strong> , and <strong> <em>basic types</em> </strong> . In addition to floating-point types like <strong> <em>float</em> </strong> and <strong> <em>double</em> </strong> , basic data types in C also include integer-based kinds like <strong> <em>int, char</em> </strong> , and <strong> <em>short</em> </strong> . These forms can be <strong> <em>signed</em> </strong> or <strong> <em>unsigned</em> </strong> , and they fluctuate in size and range. To create dependable and efficient code, it is crucial to comprehend the memory size and scope of these types.</p> <p>A few examples of <strong> <em>derived data types</em> </strong> are <strong> <em>unions, pointers, structures</em> </strong> , and <strong> <em>arrays</em> </strong> . Multiple elements of the same kind can be stored together in contiguous memory due to arrays. <strong> <em>Pointers</em> </strong> keep track of memory addresses, allowing for fast data structure operations and dynamic memory allocation. While <strong> <em>unions</em> </strong> allow numerous variables to share the same memory space, structures group relevant variables together.</p> <p> <strong> <em>Code</em> </strong> becomes more legible and maintainable when named constants are defined using enumeration data types. <strong> <em>Enumerations</em> </strong> give named constants integer values to enable the meaningful representation of related data. The void data type indicates the lack of a particular type. It is used as a return type for both <strong> <em>functions</em> </strong> and <strong> <em>function parameters</em> </strong> that don&apos;t take any arguments and don&apos;t return a value. The <strong> <em>void* pointer</em> </strong> also functions as a general pointer that can <strong> <em>store addresses</em> </strong> of various types.</p> <p>C programming requires a solid understanding of <strong> <em>data types</em> </strong> . Programmers can ensure adequate memory allocation, avoid <strong> <em>data overflow</em> </strong> or <strong> <em>truncation</em> </strong> , and enhance the readability and maintainability of their code by selecting the right <strong> <em>data type</em> </strong> . C programmers may create <strong> <em>effective, dependable</em> </strong> , and well-structured code that satisfies the requirements of their applications by having a firm understanding of data types.</p> <hr></5;>

Aiguille:

UN aiguille est un type de données dérivé qui assure le suivi de l'adresse mémoire d'un autre type de données. Lorsqu'un aiguille est déclaré, le Type de données il fait référence à est déclaré en premier , et puis le Nom de variable est précédé de un astérisque (*) .

Vous pouvez avoir un accès incorrect et modifier la valeur d'une variable à l'aide de pointeurs en spécifiant l'adresse mémoire de la variable. Pointeurs sont couramment utilisés dans Tâches tel que pointeurs de fonction, structures de données , et allocation de mémoire dynamique .

Voici un exemple de déclaration et d'utilisation d'un pointeur :

 #include int main() { int num = 42; // An integer variable int *ptr; // Declares a pointer to an integer ptr = # // Assigns the address of &apos;num&apos; to the pointer // Accessing the value of &apos;num&apos; using the pointer printf(&apos;Value of num: %d
&apos;, *ptr); return 0; } 

Sortir:

 Value of num: 42 

Structure:

Une structure est un type de données dérivé qui permet la création de types de données composites en permettant le regroupement de plusieurs types de données sous un seul nom. Il vous donne la possibilité de créer vos propres structures de données uniques en fusionnant des variables de différentes sortes.

essayez le bloc catch en java
  1. Les membres ou champs d'une structure sont utilisés pour faire référence à chaque variable qu'elle contient.
  2. Tout type de données, y compris différentes structures, peut être membre d'une structure.
  3. Les membres d'une structure sont accessibles à l'aide de l'opérateur point (.).

Une déclaration et l'utilisation d'une structure sont démontrées ici :

 #include #include // Define a structure representing a person struct Person { char name[50]; int age; float height; }; int main() { // Declare a variable of type struct Person struct Person person1; // Assign values to the structure members strcpy(person1.name, &apos;John Doe&apos;); person1.age = 30; person1.height = 1.8; // Accessing the structure members printf(&apos;Name: %s
&apos;, person1.name); printf(&apos;Age: %d
&apos;, person1.age); printf(&apos;Height: %.2f
&apos;, person1.height); return 0; } 

Sortir:

 Name: John Doe Age: 30 Height: 1.80 

Syndicat:

Un type de données dérivé appelé syndicat vous permet de stocker différents types de données dans la même adresse mémoire. Contrairement aux structures où chaque membre dispose d’un espace mémoire distinct, les membres d’une union partagent tous un seul espace mémoire. Une valeur ne peut être détenue que par un seul membre d'un syndicat à un moment donné. Lorsque vous devez représenter de nombreux types de données de manière interchangeable, les unions s’avèrent utiles. Comme pour les structures, vous pouvez accéder aux membres d'un syndicat en utilisant le point (.) opérateur.

Voici un exemple d’union déclarée et utilisée :

 #include // Define a union representing a numeric value union NumericValue { int intValue; float floatValue; char stringValue[20]; }; int main() { // Declare a variable of type union NumericValue union NumericValue value; // Assign a value to the union value.intValue = 42; // Accessing the union members printf(&apos;Integer Value: %d
&apos;, value.intValue); // Assigning a different value to the union value.floatValue = 3.14; // Accessing the union members printf(&apos;Float Value: %.2f
&apos;, value.floatValue); return 0; } 

Sortir:

 Integer Value: 42 Float Value: 3.14 

Type de données d'énumération

Un ensemble de constantes nommées ou enquêteurs qui représentent une collection de valeurs connectées peuvent être définies en C en utilisant le type de données d'énumération (enum). Énumérations vous donne les moyens de donner des noms qui ont du sens à un groupe de valeurs intégrales, ce qui rend votre code plus facile à lire et à maintenir.

Voici un exemple de comment définir et utiliser une énumération en C :

Java entier
 #include // Define an enumeration for days of the week enum DaysOfWeek { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main() { // Declare a variable of type enum DaysOfWeek enum DaysOfWeek today; // Assign a value from the enumeration today = Wednesday; // Accessing the enumeration value printf(&apos;Today is %d
&apos;, today); return 0; } 

Sortir:

 Today is 2 

Type de données vide

Le annuler le type de données dans le langage C est utilisé pour désigner l'absence d'un type particulier. Types de retour de fonction, paramètres de fonction , et pointeurs sont trois situations où il est fréquemment utilisé.

Type de retour de fonction :

UN type de retour nul la fonction ne produit pas de valeur. UN fonction vide exécute une tâche ou une action et se termine plutôt que de renvoyer une valeur.

Exemple:

 void printHello() { printf(&apos;Hello, world!
&apos;); } 

Paramètres de fonction :

Le paramètre vide peut être utilisé pour indiquer qu’une fonction n’accepte aucun argument.

Exemple:

 void processInput(void) { /* Function logic */ } 

Pointeurs :

N'importe quelle adresse peut être stockée dans un pointeur de type vide* , ce qui en fait un pointeur universel. Il propose une méthode pour travailler avec des pointeurs vers des types ambigus ou atypiques.

Exemple:

 void* dataPtr; 

Le annuler le type de données est utile pour définir des fonctions qui n'acceptent aucun argument lorsque vous travaillez avec des pointeurs génériques ou lorsque vous souhaitez signaler qu'une fonction ne renvoie pas de valeur. Il est important de noter que même si vide* peut être utilisé pour créer des pointeurs génériques, void lui-même ne peut pas être déclaré comme type de variable.

Voici un exemple de code qui montre comment utiliser void dans diverses situations :

 #include // Function with void return type void printHello() { printf(&apos;Hello, world!
&apos;); } // Function with void parameter void processInput(void) { printf(&apos;Processing input...
&apos;); } int main() { // Calling a void function printHello(); // Calling a function with void parameter processInput(); // Using a void pointer int number = 10; void* dataPtr = &amp;number; printf(&apos;Value of number: %d
&apos;, *(int*)dataPtr); return 0; } 

Sortir:

 Hello, world! Processing input... Value of number: 10 

Conclusion:

Par conséquent, Types de données sont essentiels dans le langage de programmation C car ils définissent les types d’informations que les variables peuvent contenir. Ils fournissent la taille et le format des données, permettant au compilateur d'allouer de la mémoire et d'effectuer les actions nécessaires. Les types de données pris en charge par C incluent vide, énumération, dérivé , et types de base . En plus des types à virgule flottante comme flotter et double , les types de données de base en C incluent également les types basés sur des entiers comme int, caractère , et court . Ces formulaires peuvent être signé ou non signé , et leur taille et leur étendue varient. Pour créer du code fiable et efficace, il est crucial de comprendre la taille de la mémoire et la portée de ces types.

qu'est-ce que le clustering

Quelques exemples de types de données dérivés sont syndicats, indicateurs, structures , et tableaux . Plusieurs éléments du même type peuvent être stockés ensemble dans une mémoire contiguë grâce aux tableaux. Pointeurs garder une trace des adresses mémoire, permettant des opérations rapides sur la structure des données et une allocation dynamique de la mémoire. Alors que les syndicats permettent à de nombreuses variables de partager le même espace mémoire, les structures regroupent les variables pertinentes.

Code devient plus lisible et maintenable lorsque les constantes nommées sont définies à l'aide de types de données d'énumération. Énumérations donner des valeurs entières aux constantes nommées pour permettre la représentation significative des données associées. Le type de données void indique l'absence d'un type particulier. Il est utilisé comme type de retour pour les deux les fonctions et paramètres de fonction qui ne prend aucun argument et ne renvoie pas de valeur. Le pointeur vide* fonctionne également comme un pointeur général qui peut adresses des magasins de divers types.

La programmation C nécessite une solide compréhension de Types de données . Les programmeurs peuvent garantir une allocation de mémoire adéquate, éviter débordement de données ou troncature , et améliorez la lisibilité et la maintenabilité de leur code en sélectionnant le bon Type de données . Les programmeurs C peuvent créer efficace, fiable , et un code bien structuré qui répond aux exigences de leurs applications grâce à une solide compréhension des types de données.