register dan const
Petunjuk dan imutabilitas.
register dan const adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C Academy mencakup 4 pelajaran total.
Petunjuk register
register menyarankan agar variabel disimpan di register CPU demi kecepatan. Ini hanya sebuah petunjuk; kompiler modern biasanya mengabaikannya.
#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;
}Alamatnya Tidak Dapat Diambil
Karena variabel register mungkin tidak berada di memori, Anda tidak boleh mengambil alamatnya dengan &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Mengapa register Kini Jarang Digunakan
Kompiler pengoptimal sudah menempatkan variabel yang sering digunakan di register. Kata kunci ini kini sebagian besar hanya memiliki nilai historis.
#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;
}Kualifikator const
const membuat variabel menjadi hanya-baca setelah inisialisasi. Mencoba mengubahnya akan menghasilkan kesalahan kompilasi.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Konstanta Mendokumentasikan Maksud
Menggunakan const untuk nilai tetap membuat kode lebih jelas dan melindunginya dari perubahan yang tidak disengaja.
#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 dengan Pointer
const int *p berarti nilai yang ditunjuk tidak dapat diubah melalui p. Pointer itu sendiri tetap dapat diarahkan ke tempat lain.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Pointer Konstan
int * const p berarti pointer tidak dapat diubah, tetapi nilai yang ditunjuknya dapat diubah.
#include <stdio.h>
int main(void) {
int x = 5;
int * const p = &x;
*p = 9;
printf("x = %d\n", x);
return 0;
}Parameter Fungsi const
Menandai parameter dengan const menjamin bahwa fungsi tidak akan mengubahnya. Hal ini membantu pemanggil memahami perilaku fungsi.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Tidak Dapat Diubah Berdasarkan Desain
Gunakan const untuk setiap nilai yang seharusnya tidak berubah. Kualifikator ini menangkap kesalahan saat kompilasi.
#include <stdio.h>
int main(void) {
const int LIMIT = 100;
int x = 90;
if (x < LIMIT)
printf("under limit\n");
return 0;
}Menggabungkan const dan Variabel Global
Variabel global const merupakan konstanta bersama yang aman dan tersedia di seluruh berkas.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register dan const Bersama
Anda bahkan dapat menandai penghitung perulangan dengan keduanya, meskipun const di sini berarti isi perulangan tidak boleh mengubahnya.
#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;
}Pemeriksaan Singkat
Ujilah pemahaman Anda tentang register dan const.
Ringkasan: register dan const
Anda telah mempelajari dua kualifikator.
registermemberi petunjuk tentang penyimpanan di register, tetapi biasanya diabaikan- Anda tidak dapat mengambil alamat variabel
register constmembuat nilai menjadi hanya-baca- Konstanta pada pointer memiliki dua bentuk: nilai konstan atau pointer konstan
- Gunakan
constsecara luas demi keamanan
Pertanyaan yang Sering Diajukan
Apakah pelajaran “register dan const” gratis?
Ya — teks lengkap “register dan const” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C Academy, upgrade ke CoddyKit PRO. Kursus C Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “register dan const”?
Petunjuk dan imutabilitas. Kamu berlatih C Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C Academy?
Tidak diperlukan pengalaman sebelumnya. C Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “register dan const” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C Academy ini?
Ya. Setiap pelajaran C Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- auto dan Scope Lokal
- Variabel static
- extern dan Global
- register dan const