Rumah > pembangunan bahagian belakang > C++ > Adakah Penukaran Boolean kepada Integer Sentiasa Menghasilkan 0 atau 1?

Adakah Penukaran Boolean kepada Integer Sentiasa Menghasilkan 0 atau 1?

Linda Hamilton
Lepaskan: 2024-12-01 03:39:19
asal
517 orang telah melayarinya

Does Converting a Boolean to an Integer Always Result in 0 or 1?

Bolehkah Boolean Sentiasa Menjadi Sifar atau Satu Apabila Ditukar kepada Integer?

Apabila menukar nilai boolean kepada integer, banyak pengkompil nampaknya mengekalkan hanya 0 atau 1, menimbulkan persoalan tentang kebolehpercayaan tingkah laku ini. Mari kita periksa contoh:

int a = 2;
bool b = a;
int c = 3 + b; // What is the result? 4 or 5?
Salin selepas log masuk

Jawapan: Ya, bool dijamin 0 atau 1 apabila ditukar kepada integer.

Dalam C :

Piawaian C (§4.5/4) dengan jelas menyatakan: "Nilai r jenis bool boleh ditukar kepada nilai r jenis int, dengan salah menjadi sifar dan benar menjadi satu."

Dalam C:

Apabila nilai ditukar kepada _Bool, ia menjadi 0 atau 1 (§6.3.1.2/1): "Apabila sebarang nilai skalar ditukar kepada _Bool, hasilnya ialah 0 jika nilainya dibandingkan dengan 0, sebaliknya, hasilnya ialah 1."

Apabila menukar kepada int, prosesnya mudah kerana int boleh memegang 0 dan 1, jadi tiada perubahan dalam nilai (§6.3.1.3).

Atas ialah kandungan terperinci Adakah Penukaran Boolean kepada Integer Sentiasa Menghasilkan 0 atau 1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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