Rumah >pembangunan bahagian belakang >C++ >Analisis dan perbandingan * dan & operator dalam bahasa C

Analisis dan perbandingan * dan & operator dalam bahasa C

WBOY
WBOYasal
2024-04-03 14:24:01522semak imbas

Dalam bahasa C, operator asterisk (*) digunakan untuk menyahrujuk pembolehubah penunjuk dan mendapatkan nilai pembolehubah yang ditunjuk kepada operator alamat (&) digunakan untuk mendapatkan alamat pembolehubah. Perbandingan khusus adalah seperti berikut: Penunjuk dereference: *Dapatkan alamat: & pendaraban penunjuk: *Operasi bit: &

Analisis dan perbandingan * dan & operator dalam bahasa C

Analisis dan perbandingan * dan & operator dalam bahasa C

Dalam bahasa C, asterisk (* ) operator dan operator alamat (&) operator ialah dua operator penting yang sering digunakan untuk operasi penunjuk dan pengurusan memori. Artikel ini akan menganalisis secara mendalam kegunaan dan perbezaannya, serta menyediakan kes praktikal untuk digambarkan.

Bintang (*) Operator

  • Pengendali bintang digunakan untuk menyahrujuk pembolehubah penunjuk dan mendapatkan nilai pembolehubah yang ditunjukkannya.
  • Sintaks: *Pembolehubah penunjuk
  • Contohnya:

    • int *ptr = &i;
    • printf("%d", *ptr); // Cetak nilai operator i

( &) operator
  • Operator alamat digunakan untuk mendapatkan alamat pembolehubah dan mengembalikan penunjuk kepada pembolehubah.
  • Sintaks: & nama pembolehubah

      Contohnya:
    • int i = 10;
    • int *ptr = &i;
    printf("%p", ptr); // Cetak alamat i
  • );

Operator Perbandingan

Berikut ialah perbandingan * dan & operator dalam senario berbeza: OperatorSenarioDapatkan nilai yang menunjuk kepada pembolehubahDapatkan alamat pembolehubahKira saiz ruang memoriLakukan operasi logik DAN pada dua integer
* Penunjuk dereference
& Dapatkan alamat
* Pendaraan penunjuk
Operasi bitwise (logik DAN)

Kes praktikal

Berikut ialah kes praktikal yang menunjukkan cara operasi * dan & & r digunakan:

Output: 🎜
#include <stdio.h>

int main() {
    int i = 10;
    int *ptr = &i; // ptr指向i

    // 通过解引用指针获取i的值
    printf("i的值:%d\n", *ptr);

    // 通过取地址获取i的地址
    printf("i的地址:%p\n", &i);

    // 通过指针乘法计算ptr指向的内存空间大小
    int size = sizeof(*ptr);
    printf("ptr指向内存空间大小:%d字节\n", size);

    // 使用指针进行递增
    (*ptr)++; 

    // 打印递增后的i值
    printf("递增后的i:%d\n", i);

    return 0;
}

Atas ialah kandungan terperinci Analisis dan perbandingan * dan & operator 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