Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Puntatori a Struct | Lavorare con Puntatori e Struct
Padronanza delle Struct in C

bookPuntatori a Struct

Il linguaggio di programmazione C consente di creare puntatori non solo ai tipi di dati standard, ma anche alle strutture (poiché una struttura è un tipo di dato personalizzato).

La dichiarazione e l'inizializzazione di un puntatore avvengono in questo modo:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Se <name_of_pointer> è un puntatore a una struttura,
allora *(<name_of_pointer>) rappresenta la struttura stessa.

Per accedere ai campi di una struttura tramite un puntatore, è necessario utilizzare l'operatore ->.

Note
Nota

-> è un analogo dell'operatore di accesso ai campi della struttura .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }

Questo programma mostra come lavorare con una struttura Point che memorizza due coordinate, x e y. Nella funzione main, viene creata una variabile p1 a cui vengono assegnati i valori delle coordinate, quindi viene inizializzato un puntatore a questa struttura. Utilizzando l'operatore ->, il programma accede ai campi della struttura tramite il puntatore e stampa le coordinate del punto sullo schermo.

Compito

Swipe to start coding

Si dispone di uno studente con voti in 3 materie: Math, Physics e Programming.
L'obiettivo è calcolare la media dei voti dello studente e determinare se ha superato il corso.

All'interno della funzione calculateAverageAndCheck:

  1. Accedere al voto di ciascuna materia utilizzando il puntatore.
  2. Somma di tutti e tre i voti per ottenere il punteggio totale.
  3. Dividere il totale per 3.0 per calcolare la media dei voti.
  4. Confrontare il risultato con la soglia di superamento di 60.
  5. Se la media è maggiore o uguale a 60, restituire true (lo studente ha superato).
  6. Altrimenti, restituire false (lo studente non ha superato).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 2
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you show me the code example for this Point structure?

How does the `->` operator differ from the dot operator in C?

Can you explain how to initialize a pointer to a structure in more detail?

close

bookPuntatori a Struct

Scorri per mostrare il menu

Il linguaggio di programmazione C consente di creare puntatori non solo ai tipi di dati standard, ma anche alle strutture (poiché una struttura è un tipo di dato personalizzato).

La dichiarazione e l'inizializzazione di un puntatore avvengono in questo modo:

struct <name_of_struct>
{
    <field_of_struct>;
};

struct <name_of_struct>* <name_of_pointer>;

Se <name_of_pointer> è un puntatore a una struttura,
allora *(<name_of_pointer>) rappresenta la struttura stessa.

Per accedere ai campi di una struttura tramite un puntatore, è necessario utilizzare l'operatore ->.

Note
Nota

-> è un analogo dell'operatore di accesso ai campi della struttura .

main.c

main.c

copy
12345678910111213141516171819202122
#include <stdio.h> // structure declaration struct Point { int x; int y; }; int main() { // create a structure variable of Point type struct Point p1; p1.x = 10; p1.y = 20; // create a pointer to a structure of type Point and assign it the address of variable p1 struct Point* ptr = &p1; // Access structure members via pointer by `->` operator printf("Coordinates: (%d, %d)\n", ptr->x, ptr->y); return 0; }

Questo programma mostra come lavorare con una struttura Point che memorizza due coordinate, x e y. Nella funzione main, viene creata una variabile p1 a cui vengono assegnati i valori delle coordinate, quindi viene inizializzato un puntatore a questa struttura. Utilizzando l'operatore ->, il programma accede ai campi della struttura tramite il puntatore e stampa le coordinate del punto sullo schermo.

Compito

Swipe to start coding

Si dispone di uno studente con voti in 3 materie: Math, Physics e Programming.
L'obiettivo è calcolare la media dei voti dello studente e determinare se ha superato il corso.

All'interno della funzione calculateAverageAndCheck:

  1. Accedere al voto di ciascuna materia utilizzando il puntatore.
  2. Somma di tutti e tre i voti per ottenere il punteggio totale.
  3. Dividere il totale per 3.0 per calcolare la media dei voti.
  4. Confrontare il risultato con la soglia di superamento di 60.
  5. Se la media è maggiore o uguale a 60, restituire true (lo studente ha superato).
  6. Altrimenti, restituire false (lo studente non ha superato).

Example

MathPhysicsProgrammingAverageResult
85.055.060.066.67✅ Passed
50.040.045.045.00❌ Failed
60.060.060.060.00✅ Passed

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 2
single

single

some-alt