register og const
Hint og uforanderlighet
register og const er en gratis leksjon i C Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C Academy inneholder totalt 4 leksjoner.
Hintet register
register foreslår at en variabel lagres i et CPU-register for å øke hastigheten. Det er bare et hint; moderne kompilatorer ignorerer det vanligvis.
#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;
}De kan ikke hente adressen dens
Fordi en register-variabel kanskje ikke ligger i minnet, kan De ikke hente adressen dens med &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Hvorfor register sjelden brukes i dag
Optimaliserende kompilatorer plasserer allerede aktive variabler i registre. Nøkkelordet er i hovedsak historisk i dag.
#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;
}Kvalifikatoren const
const gjør en variabel skrivebeskyttet etter initialisering. Forsøk på å endre den gir en kompilatorfeil.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Konstanter dokumenterer hensikten
Bruk av const for faste verdier gjør koden tydeligere og beskytter mot utilsiktede endringer.
#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 med pekere
const int *p betyr at verdien det pekes på, ikke kan endres gjennom p. Selve pekeren kan fortsatt flyttes.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Konstant peker
int * const p betyr at pekeren ikke kan endres, men verdien den peker på, kan endres.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}const-funksjonsparametere
Ved å merke en parameter med const lover De at funksjonen ikke skal endre den. Det gjør det enklere for den som kaller funksjonen, å forstå oppførselen.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Uforanderlig etter hensikten
Foretrekk const for alle verdier som ikke skal endres. Det oppdager feil ved kompilering.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}Kombinere const og globale variabler
En global const-variabel er en trygg, delt konstant som er tilgjengelig i hele filen.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register og const sammen
De kan til og med merke en løkketeller på begge måter, selv om const her betyr at løkkekroppen ikke kan endre den.
#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;
}Hurtigsjekk
Test forståelsen Deres av register og const.
Oppsummering: register og const
De har lært om to kvalifikatorer.
registerantyder registerlagring, men ignoreres vanligvis- De kan ikke hente adressen til en register-variabel
constgjør en verdi skrivebeskyttet- Pekeres const-egenskaper har to varianter: konstant verdi eller konstant peker
- Bruk
constrikelig for økt sikkerhet
Lær deg C med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 39
- Leksjoner
- 144
Ofte stilte spørsmål
Er leksjonen «register og const» gratis?
Ja – hele teksten i «register og const» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «register og const»?
Hint og uforanderlighet Du øver på C Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med C Academy?
Ingen tidligere erfaring er nødvendig. C Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «register og const»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne C Academy-leksjonen?
Ja. Alle C Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- auto og lokalt scope
- static-variabler
- extern og globalt scope
- register og const