Maison  >  Article  >  développement back-end  >  Écrivez un programme C pour afficher la taille et le décalage des membres de la structure

Écrivez un programme C pour afficher la taille et le décalage des membres de la structure

WBOY
WBOYavant
2023-08-29 20:09:19673parcourir

Écrivez un programme C pour afficher la taille et le décalage des membres de la structure

Problème

Écrire un programme C pour définir une structure et afficher la taille et le décalage des variables membres

Structure - Il s'agit d'un ensemble de variables de différents types de données, regroupées sous un même nom.

Forme générale de déclaration de structure

datatype member1;
struct tagname{
   datatype member2;
   datatype member n;
};

Ici, struct - mot-clé

tagname - précise le nom de la structure

member1, member2 - précise les éléments de données qui composent la structure.

Exemple

struct book{
   int pages;
   char author [30];
   float price;
};

Variables de structure

Il existe trois façons de déclarer des variables de structure -

Première méthode

struct book{
   int pages;
   char author[30];
   float price;
}b;

Méthode 2

struct{
   int pages;
   char author[30];
   float price;
}b;

Méthode trois

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b;

Initialiser et accéder à la structure

Le lien entre les membres et variables de structure Il est établi via l’opérateur d’adhésion (ou opérateur point).

peut être initialisé par :

Méthode 1

struct book{
   int pages;
   char author[30];
   float price;
} b = {100, "balu", 325.75};

Méthode 2

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b = {100, "balu", 325.75};

Méthode 3 (en utilisant l'opérateur membre)

struct book{
   int pages;
   char author[30];
   float price;
} ;
struct book b;
b. pages = 100;
strcpy (b.author, "balu");
b.price = 325.75;

Méthode 4 (en utilisant la fonction scanf)

struct book{
   int pages;
   char author[30];
   float price;
} ;
struct book b;
   scanf ("%d", &b.pages);
   scanf ("%s", b.author);
   scanf ("%f", &b. price);

Déclarez la structure à l'aide de membres de données et essayez d'imprimer leur décalage valeurs et la taille de la structure.

Programme

Démonstration en temps réel

#include<stdio.h>
#include<stddef.h>
struct tutorial{
   int a;
   int b;
   char c[4];
   float d;
   double e;
};
int main(){
   struct tutorial t1;
   printf("the size &#39;a&#39; is :%d</p><p>",sizeof(t1.a));
   printf("the size &#39;b&#39; is :%d</p><p>",sizeof(t1.b));
   printf("the size &#39;c&#39; is :%d</p><p>",sizeof(t1.c));
   printf("the size &#39;d&#39; is :%d</p><p>",sizeof(t1.d));
   printf("the size &#39;e&#39; is :%d</p><p>",sizeof(t1.e));
   printf("the offset &#39;a&#39; is :%d</p><p>",offsetof(struct tutorial,a));
   printf("the offset &#39;b&#39; is :%d</p><p>",offsetof(struct tutorial,b));
   printf("the offset &#39;c&#39; is :%d</p><p>",offsetof(struct tutorial,c));
   printf("the offset &#39;d&#39; is :%d</p><p>",offsetof(struct tutorial,d));
   printf("the offset &#39;e&#39; is :%d</p><p></p><p>",offsetof(struct tutorial,e));
   printf("size of the structure tutorial is :%d",sizeof(t1));
   return 0;
}

Sortie

the size &#39;a&#39; is :4
the size &#39;b&#39; is :4
the size &#39;c&#39; is :4
the size &#39;d&#39; is :4
the size &#39;e&#39; is :8
the offset &#39;a&#39; is :0
the offset &#39;b&#39; is :4
the offset &#39;c&#39; is :8
the offset &#39;d&#39; is :12
the offset &#39;e&#39; is :16

size of the structure tutorial is :24

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer