Rumah >pembangunan bahagian belakang >C++ >Adakah pembolehubah bool dijamin untuk ditukar kepada 0 atau 1 apabila dihantar ke integer?

Adakah pembolehubah bool dijamin untuk ditukar kepada 0 atau 1 apabila dihantar ke integer?

Linda Hamilton
Linda Hamiltonasal
2024-11-12 14:46:02553semak imbas

Is a bool variable guaranteed to convert to 0 or 1 when cast to an integer?

Nilai Terjamin Bool Apabila Ditukar kepada Int

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!

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