register dan const
Petunjuk dan kebolehubahan
register dan const ialah pelajaran C Academy percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran C Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus C Academy merangkumi sejumlah 4 pelajaran.
Petunjuk register
register mencadangkan supaya pemboleh ubah disimpan dalam daftar CPU demi kelajuan. Ini hanya petunjuk; pengompil moden 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 Boleh Diambil
Oleh sebab pemboleh ubah register mungkin tidak berada dalam memori, anda tidak boleh mengambil alamatnya dengan &.
#include <stdio.h>
int main(void) {
register int x = 10;
printf("x = %d\n", x);
return 0;
}Sebab register Jarang Digunakan Kini
Pengompil pengoptimuman sudah meletakkan pemboleh ubah yang kerap digunakan dalam daftar. Kini, kata kunci ini kebanyakannya mempunyai nilai sejarah.
#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;
}Pengubah suai const
const menjadikan pemboleh ubah baca sahaja selepas dimulakan. Percubaan untuk mengubahnya menghasilkan ralat pengompilan.
#include <stdio.h>
int main(void) {
const int DAYS = 7;
printf("DAYS = %d\n", DAYS);
return 0;
}Pemalar Mendokumentasikan Niat
Penggunaan const untuk nilai tetap menjadikan kod lebih jelas dan melindunginya daripada perubahan yang tidak disengajakan.
#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 Penuding
const int *p bermaksud nilai yang dituding tidak boleh diubah melalui p. Penuding itu sendiri masih boleh dialihkan.
#include <stdio.h>
int main(void) {
int x = 5;
const int *p = &x;
printf("*p = %d\n", *p);
return 0;
}Penuding Malar
int * const p bermaksud penuding itu tidak boleh diubah, tetapi nilai yang ditudingnya boleh 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
Menandakan parameter sebagai const menjanjikan bahawa fungsi tidak akan mengubahnya, sekali gus membantu pemanggil memahami tingkah laku fungsi.
#include <stdio.h>
void show(const int n) {
printf("n = %d\n", n);
}
int main(void) {
show(42);
return 0;
}Tidak Boleh Diubah Mengikut Reka Bentuk
Utamakan const untuk sebarang nilai yang tidak sepatutnya berubah. Ini mengesan pepijat semasa pengompilan.
#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 Pemboleh Ubah Global
Pemboleh ubah global const ialah pemalar dikongsi yang selamat dan tersedia untuk seluruh fail.
#include <stdio.h>
const int VERSION = 2;
int main(void) {
printf("VERSION = %d\n", VERSION);
return 0;
}register dan const Bersama
Anda juga boleh menandakan pembilang gelung dengan kedua-duanya, walaupun const di sini bermaksud badan gelung 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;
}Semakan Pantas
Uji pemahaman anda tentang register dan const.
Imbas Kembali: register dan const
Anda telah mempelajari dua pengubah suai.
registermemberikan petunjuk untuk menggunakan storan daftar, tetapi biasanya diabaikan- Anda tidak boleh mengambil alamat pemboleh ubah daftar
constmenjadikan nilai baca sahaja- Kekonstanan penuding mempunyai dua bentuk: nilai const dan penuding const
- Gunakan
constdengan meluas demi keselamatan
Pelajari C dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 39
- Pelajaran
- 144
Soalan Lazim
Adakah pelajaran “register dan const” percuma?
Ya — teks penuh “register dan const” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus C Academy, tingkat taraf kepada CoddyKit PRO. Kursus C Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “register dan const”?
Petunjuk dan kebolehubahan Anda berlatih C Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan C Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran C Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “register dan const” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran C Academy ini?
Ya. Setiap pelajaran C Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- auto dan Skop Tempatan
- Pemboleh Ubah static
- extern dan Global
- register dan const