Table des matières
Problème
Forme générale de déclaration de structure
Exemple
Variables de structure
Première méthode
Méthode 2
Méthode trois
Initialiser et accéder à la structure
Méthode 3 (en utilisant l'opérateur membre)
Méthode 4 (en utilisant la fonction scanf)
Programme
Sortie
Maison développement back-end C++ É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

Aug 29, 2023 pm 08:09 PM
结构体 大小 compenser

É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;
};
Copier après la connexion

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;
};
Copier après la connexion

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;
Copier après la connexion

Méthode 2

struct{
   int pages;
   char author[30];
   float price;
}b;
Copier après la connexion

Méthode trois

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b;
Copier après la connexion

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};
Copier après la connexion

Méthode 2

struct book{
   int pages;
   char author[30];
   float price;
};
struct book b = {100, "balu", 325.75};
Copier après la connexion

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;
Copier après la connexion

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);
Copier après la connexion

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;
}
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment augmenter la taille du disque dans VirtualBox [Guide] Comment augmenter la taille du disque dans VirtualBox [Guide] Mar 17, 2024 am 10:10 AM

Nous rencontrons souvent des situations où la taille de disque prédéfinie n'a pas de place pour plus de données ? Si vous avez besoin de plus d'espace disque sur la machine virtuelle ultérieurement, vous devez étendre le disque dur virtuel et les partitions. Dans cet article, nous verrons comment augmenter la taille du disque dans VirtualBox. Augmenter la taille du disque dans VirtualBox Il est important de noter que vous souhaiterez peut-être sauvegarder les fichiers de votre disque dur virtuel avant d'effectuer ces opérations, car il y a toujours la possibilité que quelque chose se passe mal. C'est toujours une bonne pratique d'avoir des sauvegardes. Cependant, le processus fonctionne généralement correctement, assurez-vous simplement d'éteindre votre ordinateur avant de continuer. Il existe deux façons d'augmenter la taille du disque dans VirtualBox. Augmentez la taille du disque VirtualBox à l'aide de l'interface graphique à l'aide de CL

Transfert fort de la structure Golang : explication détaillée des principes et techniques de mise en œuvre Transfert fort de la structure Golang : explication détaillée des principes et techniques de mise en œuvre Apr 03, 2024 pm 03:09 PM

La coercition structurelle dans Golang consiste à convertir la valeur d'un type de structure en un autre type. Ceci peut être réalisé grâce à des techniques telles que le transfert de force d'affirmation, le transfert de force de réflexion et le transfert de force indirecte par pointeur. La coercition par assertion utilise des assertions de type, la coercition réflexive utilise le mécanisme de réflexion et la coercition indirecte par pointeur évite la copie de valeur. Les étapes spécifiques sont les suivantes : 1. Transfert de force d'assertion : utilisez la syntaxe d'assertion de type ; 2. Transfert de force de réflexion : utilisez les fonctions Reflect.Type.AssignableTo et Reflect.Value.Convert 3. Transfert de force indirect du pointeur : utilisez le déréférencement du pointeur.

Convertissez la structure en chaîne JSON à l'aide de la fonction json.Marshal Convertissez la structure en chaîne JSON à l'aide de la fonction json.Marshal Jul 24, 2023 pm 12:54 PM

Utilisez la fonction json.Marshal pour convertir une structure en chaîne JSON. Dans le langage Go, vous pouvez utiliser la fonction json.Marshal pour convertir une structure en chaîne JSON. Une structure est un type de données composé de plusieurs champs et JSON est un format d'échange de données léger couramment utilisé. La conversion des structures en chaînes JSON facilite l'échange de données entre différents systèmes. Voici un exemple de code : packagemainimport(&q

Quelle est la différence entre Structure et Tableau en langage C ? Quelle est la différence entre Structure et Tableau en langage C ? Aug 30, 2023 pm 09:37 PM

En C, les structures et les tableaux sont utilisés comme conteneurs de types de données, c'est-à-dire que dans les structures et les tableaux, nous pouvons stocker des données et y effectuer différentes opérations. Sur la base de l'implémentation interne, voici quelques différences fondamentales entre les deux. Sr. Number Key Structure Tableau 1 Définition Une structure peut être définie comme une structure de données utilisée comme conteneur et pouvant contenir des variables de différents types. Un tableau, quant à lui, est une structure de données utilisée comme conteneur pouvant contenir des variables du même type mais ne prenant pas en charge plusieurs variables de type de données. 2 Allocation de mémoire Les structures d'allocation de mémoire pour les données d'entrée ne doivent pas nécessairement se trouver dans des emplacements de mémoire contigus. Alors que dans le cas des tableaux, les données d'entrée sont stockées dans une allocation de mémoire contiguë, ce qui signifie que les tableaux stockent les données dans un modèle de mémoire qui alloue des blocs de mémoire contigus (c'est-à-dire qu'ils ont

Application d'unions et de structures anonymes en langage C Application d'unions et de structures anonymes en langage C Sep 16, 2023 pm 06:45 PM

Nous examinons ici ce que sont les unions et structures anonymes en langage C. Les syndicats et structures anonymes sont des syndicats et structures anonymes. Puisqu’ils n’ont pas de nom, nous ne pouvons pas en créer un objet direct. Nous l'utilisons comme structure imbriquée ou union. Ce sont des exemples de syndicats et de structures anonymes. struct{ datatypevariable; ...};union{ datatypevariable; ...};Dans cet exemple, nous créons

Méthodes d'application et de fonctionnement des structures en PHP Méthodes d'application et de fonctionnement des structures en PHP Jul 16, 2023 pm 11:21 PM

À mesure que le langage PHP continue de se développer et de croître, les méthodes d'application et de fonctionnement des structures en PHP deviennent de plus en plus complètes. En plus des variables et des tableaux courants, PHP fournit également un type de données plus flexible, à savoir la structure. Une structure est un type de données composite composé de plusieurs données membres de différents types. Il peut combiner des données associées pour former des données plus complètes et structurées. En PHP, vous pouvez simuler le comportement et les fonctionnalités des structures en utilisant des classes et des objets. Voyons d'abord comment

Utilisez la fonction json.Unmarshal pour analyser une chaîne JSON dans une structure Utilisez la fonction json.Unmarshal pour analyser une chaîne JSON dans une structure Jul 25, 2023 pm 10:49 PM

Utilisez la fonction json.Unmarshal pour analyser une chaîne JSON dans une structure. Dans le langage Go, vous pouvez utiliser la fonction json.Unmarshal pour analyser une chaîne JSON dans une structure. Il s'agit d'une fonctionnalité très utile, notamment lors du traitement des réponses API ou de la lecture de fichiers de configuration. Tout d’abord, nous devons définir un type de structure pour représenter la structure de l’objet JSON que nous souhaitons analyser. Supposons que nous ayons la chaîne JSON suivante : {"name"

Pourquoi en C/C++, la taille de la structure n'est pas égale à la somme des tailles de chaque membre ? Pourquoi en C/C++, la taille de la structure n'est pas égale à la somme des tailles de chaque membre ? Aug 26, 2023 am 09:29 AM

La taille des éléments de type structure obtenus par sizeof() n'est pas toujours égale à la taille de chaque membre individuel. Parfois, le compilateur ajoute du remplissage pour éviter les problèmes d'alignement. Les dimensions peuvent donc changer. Un remplissage est ajouté lorsqu'un membre de la structure est suivi d'un membre de plus grande taille ou se trouve à l'extrémité de la structure. Différents compilateurs ont différents types de contraintes d'alignement. Dans la norme C, les structures d'alignement total dépendent de l'implémentation. Cas 1 Dans ce cas, le double z fait 8 octets de long, ce qui est supérieur à x (4 octets)). Ainsi, 4 octets supplémentaires de remplissage sont ajoutés. De plus, les données de type court y disposent de 2 octets d'espace en mémoire, donc 6 octets supplémentaires sont ajoutés comme remplissage. Exemple de code #include<stdio.h>structmyS

See all articles