Dalam bahasa C, (asterisk) digunakan untuk alamat dan nilai tidak langsung, manakala & (aksara alamat) digunakan untuk alamat dan rujukan. Dapatkan nilai yang ditunjukkan oleh pembolehubah atau penunjuk, digunakan untuk mengubah suai nilai dan mengisytiharkan pembolehubah penunjuk & Dapatkan alamat pembolehubah, digunakan untuk menetapkan alamat kepada pembolehubah penunjuk dan menghantar alamat sebagai parameter fungsi.
Perbezaan antara * dan & dalam bahasa C
simbol * dan & ialah pengendali berbeza dalam bahasa C, digunakan untuk tujuan berbeza:
Maksud:
-
pengalamatan tidak langsung atau pengendali nilai penunjuk.
-
Watak alamat &: mewakili alamat atau pengendali rujukan.
Tujuan:
Bintang*:
- Dapatkan nilai pembolehubah atau pembolehubah yang ditunjuk oleh penunjuk.
- Ubah suai nilai pembolehubah atau pembolehubah yang ditunjuk oleh penunjuk.
- Sebagai sebahagian daripada pengisytiharan pembolehubah penunjuk.
alamat watak &:
- Dapatkan alamat (lokasi memori) pembolehubah.
- Tetapkan alamat pembolehubah kepada pembolehubah penunjuk.
- Lepaskan alamat pembolehubah sebagai parameter fungsi.
Contoh:
int main() {
int x = 10;
int *ptr = &x; // ptr指向x的地址
// 获取x的值
printf("x = %d\n", x);
// 使用指针获取x的值
printf("*ptr = %d\n", *ptr);
// 使用指针修改x的值
*ptr = 20;
printf("x = %d\n", x); // x的值已经改变为20
return 0;
}
Nota:
- *ptr mewakili nilai pembolehubah yang ditunjuk oleh pembolehubah penunjuk ptr, manakala &x mewakili alamat pembolehubah x.
- Biasanya, pembolehubah penunjuk ialah pembolehubah jenis "jenis pembolehubah*", yang menunjuk kepada pembolehubah jenis tertentu.
- Pengambil alamat dan pengendali pengalamatan tidak langsung boleh digunakan dalam kombinasi untuk melaksanakan aritmetik penunjuk dan struktur data lanjutan yang lain.
Atas ialah kandungan terperinci Perbezaan antara * dan & dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn