Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perbezaan antara * dan & dalam bahasa C

Perbezaan antara * dan & dalam bahasa C

下次还敢
下次还敢asal
2024-04-27 22:51:15546semak imbas

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

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