Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah perbezaan antara && dan & dalam bahasa C?

Apakah perbezaan antara && dan & dalam bahasa C?

下次还敢
下次还敢asal
2024-04-13 18:36:44477semak imbas

Dalam bahasa C, && dan & kedua-duanya adalah pengendali logik, tetapi terdapat perbezaan berikut: && mempunyai keutamaan yang lebih tinggi daripada & && dibiarkan bersekutu, & bersekutu kanan && mengembalikan nilai integer ; && penilaian litar pintas , & bukan penilaian litar pintas.

Apakah perbezaan antara && dan & dalam bahasa C?

Perbezaan antara && dan & dalam bahasa C

Dalam bahasa C, && dan & adalah kedua-dua pengendali logik, digunakan untuk beroperasi pada nilai Boolean. Walau bagaimanapun, terdapat beberapa perbezaan utama antara mereka:

1 Keutamaan operasi

  • && mempunyai keutamaan operasi yang lebih tinggi daripada &. Ini bermakna && akan dilaksanakan sebelum & dalam ungkapan.

2. Associativity

  • && telah meninggalkan associativity, manakala & mempunyai associativity yang betul. Ini bermakna apabila berbilang && atau & pengendali muncul dalam ungkapan, && akan beroperasi pada operan paling kiri dalam ungkapan dahulu, dan & akan beroperasi pada operan paling kanan dalam ungkapan itu terlebih dahulu.

3. Hasil operasi Hasil operasi

  • && ialah nilai Boolean (benar atau salah). Hasil daripada operasi
  • & ialah nilai integer (0 atau 1).

4. Penilaian litar pintas

  • && mempunyai ciri penilaian litar pintas. Ini bermakna jika operan pertama adalah palsu, operan kedua tidak akan dinilai dan hasil keseluruhan ungkapan akan menjadi palsu.
  • & tidak mempunyai sifat penilaian litar pintas. Operan kedua dinilai tanpa mengira nilai operan pertama, dan hasil keseluruhan ungkapan akan menjadi 0 atau 1.

Contoh

Contoh kod berikut menunjukkan perbezaan antara kedua-dua operator ini:

int a = 1, b = 0;

printf("&&: %d\n", a && b); // 输出: 0 (假)
printf("& : %d\n", a & b); // 输出: 0 (0)

Dalam contoh pertama, memandangkan a adalah benar tetapi b adalah palsu, ungkapan && menghasilkan Palsu. Dalam contoh kedua, kerana a adalah benar dan b adalah salah, ungkapan & dinilai kepada 0 (nilai integer).

Atas ialah kandungan terperinci Apakah 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
Artikel sebelumnya:Apakah ?: dalam bahasa c?Artikel seterusnya:Apakah ?: dalam bahasa c?