register e const
Suggerimenti e immutabilità
register e const è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 4 lezioni in totale.
L’indicazione register
register suggerisce di mantenere una variabile in un registro della CPU per aumentare la velocità. È solo un’indicazione; i compilatori moderni solitamente la ignorano.
#include <stdio.h>
int main(void) {
register int i;
int sum = 0;
for (i = 0; i < 5; i++)
sum += i;
printf("sum = %d\n", sum);
return 0;
}Non è possibile ottenerne l’indirizzo
Poiché una variabile register potrebbe non risiedere in memoria, non è possibile ottenerne l’indirizzo con &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Perché register è raro oggi
I compilatori ottimizzatori collocano già nei registri le variabili usate più frequentemente. Oggi la parola chiave è soprattutto un retaggio storico.
#include <stdio.h>
int main(void) {
int product = 1;
for (register int i = 1; i <= 4; i++)
product *= i;
printf("product = %d\n", product);
return 0;
}Il qualificatore const
const rende una variabile di sola lettura dopo l’inizializzazione. Tentare di modificarla produce un errore di compilazione.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Le costanti documentano l’intenzione
Usare const per i valori fissi rende il codice più chiaro e protegge dalle modifiche accidentali.
#include <stdio.h>
int main(void) {
const double PI = 3.14159;
double r = 2.0;
printf("area = %.2f\n", PI * r * r);
return 0;
}const con i puntatori
const int *p significa che il valore puntato non può essere modificato tramite p. Il puntatore, invece, può ancora essere spostato.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Puntatore costante
int * const p significa che il puntatore non può essere modificato, ma il valore a cui punta sì.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}Parametri di funzione const
Contrassegnare un parametro con const garantisce che la funzione non lo modificherà, aiutando chi la chiama a prevederne il comportamento.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Immutabilità per progettazione
Preferisca const per qualsiasi valore che non dovrebbe cambiare. In questo modo gli errori vengono rilevati durante la compilazione.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}Combinazione di const e variabili globali
Una variabile globale const è una costante condivisa e sicura, disponibile nell’intero file.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register e const insieme
È persino possibile contrassegnare un contatore di ciclo con entrambe, anche se in questo caso const significa che il corpo del ciclo non deve modificarlo.
#include <stdio.h>
int main(void) {
int sum = 0;
for (int i = 0; i < 3; i++) {
const int doubled = i * 2;
sum += doubled;
}
printf("sum = %d\n", sum);
return 0;
}Verifica rapida
Verifichi la Sua comprensione di register e const.
Riepilogo: register e const
Ha imparato a conoscere due qualificatori.
registersuggerisce l’uso di un registro, ma viene solitamente ignorato- Non è possibile ottenere l’indirizzo di una variabile register
constrende un valore di sola lettura- La costanza dei puntatori ha due forme: valore const e puntatore const
- Usi
constliberamente per maggiore sicurezza
Domande Frequenti
La lezione «register e const» è gratuita?
Sì — il testo completo di «register e const» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 4 lezioni in totale.
Cosa imparerò in «register e const»?
Suggerimenti e immutabilità Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C Academy?
Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «register e const»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C Academy?
Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- auto e ambito locale
- Variabili static
- extern e globale
- register e const