Creare variabili struct
Fa parte della sezione Logica e flusso del percorso C di Coddy. Lezione 40 di 63.
Una volta dichiarato un tipo struct, puoi usarlo per creare variabili effettive che contengono dati. Creare una variabile struct funziona esattamente come dichiarare qualsiasi altra variabile in C: specifichi il tipo di dato seguito dal nome della variabile.
La sintassi per creare una variabile struct è:
struct StructureName variableName;Per esempio, usando la struct Point della lezione precedente:
struct Point p1;
struct Point p2;Questo crea due variabili, p1 e p2, entrambe di tipo struct Point. Ogni variabile ha una propria copia separata dei membri x e y definiti nella struct.
Puoi creare tutte le variabili di tipo struct di cui hai bisogno, proprio come faresti con i tipi integrati come int o float. Ogni variabile struct è indipendente e può contenere valori diversi nei suoi membri. Una volta create, queste variabili sono pronte per memorizzare i dati delle coordinate in modo organizzato.
Sfida
FacileCrea un programma C che dimostri la creazione di più variabili struct di tipi diversi. Il tuo programma dovrebbe:
- Definire una
structdenominataRectanglecon i seguenti membri:- Un intero
width - Un intero
height
- Un intero
- Definire una
structdenominataStudentcon i seguenti membri:- Un intero
id - Un array di caratteri
namedi dimensione 30 - Un float
gpa
- Un intero
- Nella funzione main, creare le seguenti variabili struct:
- Due variabili
Rectangledenominaterect1erect2 - Tre variabili
Studentdenominatestudent1,student2estudent3
- Due variabili
- Stampare messaggi di conferma per ogni variabile creata, usando esattamente questo formato:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- Stampare il numero totale di variabili struct create nel formato:
Total struct variables created: 5 - Stampare l’uso della memoria per ogni tipo nel formato:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
Questa sfida mette alla prova la tua capacità di definire più tipi struct e creare diverse variabili di ciascun tipo. Ogni variabile struct è indipendente e ha il proprio spazio di memoria, dimostrando come le struct possano essere usate per organizzare diversi tipi di dati nei tuoi programmi.
Provalo tu
#include <stdio.h>
int main() {
// TODO: Definisci qui la tua struct Rectangle
// TODO: Definisci qui la tua struct Student
// TODO: Crea qui le variabili struct
// TODO: Stampa messaggi di conferma per ogni variabile creata
// TODO: Stampa il numero totale di variabili struct create
// TODO: Stampa l'utilizzo della memoria per ogni tipo struct usando sizeof()
return 0;
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Fondamenti dei puntatori
Che cos’è un puntatore?Dichiarare i puntatoriL’operatore di indirizzo (&)L’operatore di dereferenziazione (*)Puntatori NULLRiepilogo: nozioni di base sui puntatori4Progetto: Utility di testo semplice
Panoramica del progettoConteggio dei caratteri7Strutture (struct)
Che cos'è una struct?Dichiarare una structCreare variabili structAccedere ai membri di una structInizializzare le structRiepilogo: struct dei dati dello studente2Puntatori e array
I nomi degli array come puntatoriElementi degli array e puntatoriAritmetica dei puntatoriConfrontare i puntatoriRiepilogo: attraversamento di un array con i puntatori5Puntatori e funzioni
Passaggio per valorePassare puntatori alle funzioniModificare le variabili tramite puntatoriUn esempio classico: scambiare valoriPassare array alle funzioniRiepilogo: argomenti puntatore nelle funzioni3Array di caratteri e stringhe
Stringhe come array di charIl terminatore nullInput di stringhe con scanfUso di strlen()Uso di strcpy()Uso di strcat()Uso di strcmp()Riepilogo: funzioni di base per le stringhe6Gestione della memoria
Memoria Stack vs. HeapAllocazione dinamica - malloc()Usare sizeof() per l'allocazioneVerificare il fallimento dell'allocazioneLiberare la memoria con free()Allocare con calloc()Riepilogo: array dinamico9Progetto: Inserimento semplice di un contatto
Progetto: Definire una struct ContattoFunzione per creare un contattoEsercitati da solo: Compilatore C online