Rumah > pembangunan bahagian belakang > C++ > Adakah `true` Sentiasa Bersamaan dengan `1` dalam Penukaran Integer Boolean C?

Adakah `true` Sentiasa Bersamaan dengan `1` dalam Penukaran Integer Boolean C?

Susan Sarandon
Lepaskan: 2024-11-29 15:20:10
asal
320 orang telah melayarinya

Is `true` Always Equivalent to `1` in C   Boolean-Integer Conversions?

Penukaran Boolean-Integer dalam C

Dalam bahasa pengaturcaraan C, selalunya perlu menukar antara jenis data yang berbeza. Satu penukaran biasa ialah antara nilai boolean dan integer. Timbul persoalan: bolehkah kita menganggap bahawa nilai boolean true adalah bersamaan dengan integer 1 untuk mana-mana pengkompil C?

Jawapannya

Ya, ia adalah selamat untuk diandaikan that (bool)true == (int)1 untuk mana-mana pengkompil C. Ini adalah kerana sebab berikut:

  • Promosi Sepadu: Apabila nilai boolean ditukar kepada integer, ia mengalami proses yang dipanggil promosi integral. Ini menukarkan boolean kepada int dengan nilai sama ada 0 (untuk palsu) atau 1 (untuk benar).
  • Penukaran Tersirat: Hantaran tidak diperlukan untuk penukaran ini. Pengkompil C secara automatik akan melakukan penukaran tersirat berdasarkan konteks ungkapan.

Oleh itu, ungkapan benar == 1 akan menilai kepada benar, tanpa mengira pengkompil C digunakan. Tingkah laku ini dinyatakan dalam piawai C (4.7 [conv.integral]) yang menyatakan bahawa "Jika jenis sumber ialah bool... true ditukar kepada satu."

Atas ialah kandungan terperinci Adakah `true` Sentiasa Bersamaan dengan `1` dalam Penukaran Integer Boolean C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan