Structure C
Structure C
Dans ce didacticiel, vous découvrirez les types de structures en programmation C à l'aide d'exemples.
En programmation C, un struct (ou structure) est une collection de variables (peuvent être de différents types) sous un nom unique.
Définir les structures
Avant de pouvoir créer des variables de structure, vous devez définir son type de données. Pour définir une structure, le struct
mot-clé est utilisé.
Syntaxe de la structure
struct structureName {
dataType member1;
dataType member2;
...
};
Par exemple,
struct Person {
char name[50];
int citNo;
float salary;
};
Ici, un type dérivé struct Person
est défini. Maintenant, vous pouvez créer des variables de ce type.
Créer des variables de structure
Lorsqu'un struct
type est déclaré, aucun stockage ou mémoire n'est alloué. Pour allouer de la mémoire d'un type de structure donné et travailler avec, nous devons créer des variables.
Voici comment nous créons des variables de structure :
struct Person {
// code
};
int main() {
struct Person person1, person2, p[20];
return 0;
}
Une autre façon de créer un struct
variable est :
struct Person {
// code
} person1, person2, p[20];
Dans les deux cas,
- personne1 et personne2 sont
struct Person
variables - p[] est un
struct Person
tableau de taille 20.
Accéder aux membres d'une structure
Il existe deux types d'opérateurs utilisés pour accéder aux membres d'une structure.
.
- Opérateur membre->
- Opérateur de pointeur de structure (sera abordé dans le prochain tutoriel)
Supposons que vous souhaitiez accéder au salaire de personne2 . Voici comment vous pouvez le faire.
person2.salary
Exemple 1 :Structures C++
#include <stdio.h>
#include <string.h>
// create struct with person1 variable
struct Person {
char name[50];
int citNo;
float salary;
} person1;
int main() {
// assign value to name of person1
strcpy(person1.name, "George Orwell");
// assign values to other person1 variables
person1.citNo = 1984;
person1. salary = 2500;
// print struct variables
printf("Name: %s\n", person1.name);
printf("Citizenship No.: %d\n", person1.citNo);
printf("Salary: %.2f", person1.salary);
return 0;
}
Sortie
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Dans ce programme, nous avons créé un struct
nommé Person
. Nous avons également créé une variable de Person
nommé person1 .
En main()
, nous avons attribué des valeurs aux variables définies dans Person
pour la personne1 objet.
strcpy(person1.name, "George Orwell");
person1.citNo = 1984;
person1. salary = 2500;
Notez que nous avons utilisé strcpy()
fonction pour attribuer la valeur à person1.name .
C'est parce que nom est un char
array (C-string) et nous ne pouvons pas utiliser l'opérateur d'affectation =
avec elle après avoir déclaré la chaîne.
Enfin, nous avons imprimé les données de person1 .
Type de mot clé
Nous utilisons le typedef
mot-clé pour créer un nom d'alias pour les types de données. Il est couramment utilisé avec les structures pour simplifier la syntaxe de déclaration des variables.
Par exemple, regardons le code suivant :
struct Distance{
int feet;
float inch;
};
int main() {
struct Distance d1, d2;
}
Nous pouvons utiliser typedef
pour écrire un code équivalent avec une syntaxe simplifiée :
typedef struct Distance {
int feet;
float inch;
} distances;
int main() {
distances d1, d2;
}
Exemple 2 :typedef C++
#include <stdio.h>
#include <string.h>
// struct with typedef person
typedef struct Person {
char name[50];
int citNo;
float salary;
} person;
int main() {
// create Person variable
person p1;
// assign value to name of p1
strcpy(p1.name, "George Orwell");
// assign values to other p1 variables
p1.citNo = 1984;
p1. salary = 2500;
// print struct variables
printf("Name: %s\n", p1.name);
printf("Citizenship No.: %d\n", p1.citNo);
printf("Salary: %.2f", p1.salary);
return 0;
}
Sortie
Name: George Orwell Citizenship No.: 1984 Salary: 2500.00
Ici, nous avons utilisé typedef
avec le Person
structure pour créer un alias person
.
// struct with typedef person
typedef struct Person {
// code
} person;
Maintenant, nous pouvons simplement déclarer un Person
variable utilisant le person
alias :
// equivalent to struct Person p1
person p1;
Structures imbriquées
Vous pouvez créer des structures au sein d'une structure en programmation C. Par exemple,
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integers;
} num1, num2;
Supposons que vous souhaitiez définir image de num2 variable à 11 . Voici comment procéder :
num2.comp.imag = 11;
Exemple 3 :Structures imbriquées C++
#include <stdio.h>
struct complex {
int imag;
float real;
};
struct number {
struct complex comp;
int integer;
} num1;
int main() {
// initialize complex variables
num1.comp.imag = 11;
num1.comp.real = 5.25;
// initialize number variable
num1.integer = 6;
// print struct variables
printf("Imaginary Part: %d\n", num1.comp.imag);
printf("Real Part: %.2f\n", num1.comp.real);
printf("Integer: %d", num1.integer);
return 0;
}
Sortie
Imaginary Part: 11 Real Part: 5.25 Integer: 6
Pourquoi des structures en C ?
Supposons que vous souhaitiez stocker des informations sur une personne :son nom, son numéro de citoyenneté et son salaire. Vous pouvez créer différentes variables nom , citNo et salaire pour stocker ces informations.
Que faire si vous avez besoin de stocker les informations de plusieurs personnes ? Maintenant, vous devez créer différentes variables pour chaque information par personne :name1 , citNo1 , salaire1 , nom2 , citNo2 , salaire2 , etc.
Une meilleure approche serait d'avoir une collection de toutes les informations connexes sous un seul nom Person
structurez-la et utilisez-la pour chaque personne.
En savoir plus sur la structure
- Structures et pointeurs
- Passer des structures à une fonction
Langue C
- C# Hello World - Votre premier programme C#
- Mots-clés et identifiants C#
- Variables C# et types de données (primitifs)
- Opérateurs C#
- Opérateurs de bits et de décalage de bits C#
- Entrée et sortie de base C#
- Expressions, instructions et blocs C# (avec exemples)
- Commentaires C#
- Instruction de commutateur C #