Rumah >pembangunan bahagian belakang >C++ >Adakah pembolehubah bool dijamin untuk ditukar kepada 0 atau 1 apabila dihantar ke integer?
Soalan:
Adakah dijamin nilai disimpan dalam bool pembolehubah akan sama ada 0 atau 1 apabila ia ditukar kepada integer (int)?
Jawapan:
Ya, ia dijamin.
Sebab:
Kedua-dua bahasa pengaturcaraan C dan C secara khusus mentakrifkan gelagat nilai bool apabila ia ditukar kepada integer.
Dalam C , Piawaian C (§4.5/4) menyatakan:
"Nilai r jenis bool boleh ditukar kepada nilai r jenis int, dengan palsu menjadi sifar dan benar menjadi satu."
Dalam C, Piawaian C (§6.3.1.2/1) menyatakan:
"Apabila sebarang nilai skalar ditukar kepada _Bool, hasilnya ialah 0 jika nilai itu dibandingkan dengan 0; jika tidak, hasilnya ialah 1."
Apabila nilai _Bool ditukar kepada int, nilainya tetap sama kerana int boleh memegang kedua-dua 0 dan 1 (§6.3.1.3).
Oleh itu, anda boleh bergantung pada fakta bahawa pembolehubah bool akan sentiasa mengandungi sama ada 0 atau 1 apabila ditukar kepada int.
Atas ialah kandungan terperinci Adakah pembolehubah bool dijamin untuk ditukar kepada 0 atau 1 apabila dihantar ke integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!