Ralat Pengkompil: Larangan Perbandingan Penunjuk dan Integer dalam C
Isu pengkompil "ISO C melarang perbandingan antara penunjuk dan integer" timbul semasa penyusunan , menyerlahkan ralat kod yang berkaitan dengan perbandingan yang tidak betul antara penunjuk dan integer. Untuk menyelidiki resolusi, mari kita periksa kod yang disediakan:
Dalam kod yang diberikan, ralat berlaku dalam pernyataan if yang mana jawapan sedang diuji terhadap "y":
<code class="cpp">if (answer == "y") ...</code>
Di sini , jawapan ialah pembolehubah aksara, manakala "y" ialah rentetan gaya C literal. Percubaan untuk membandingkan pembolehubah aksara kepada penuding kepada aksara (sebagaimana "y" diterjemahkan kepada penuding) mencetuskan ralat pengkompil.
Anda mempunyai dua penyelesaian yang berpotensi untuk menangani isu ini:
1. Gunakan Pembolehubah Rentetan:
Penyelesaian pilihan ialah menggunakan pembolehubah rentetan untuk jawapan dan bukannya pembolehubah aksara:
<code class="cpp">string answer;</code>
Ini sejajar dengan amalan terbaik dan mengelakkan integer penunjuk ralat perbandingan.
2. Gunakan Pemalar Aksara:
Sebagai alternatif, anda boleh menggunakan pemalar aksara dengan petikan tunggal, yang mewakili aksara dan bukannya rentetan:
<code class="cpp">if (answer == 'y') ...</code>
Kedua-dua penyelesaian menyelesaikan penuding dengan berkesan- larangan perbandingan integer, memastikan pelaksanaan kod yang betul.
Atas ialah kandungan terperinci Mengapa Kod C Saya Membuang \'ISO C melarang perbandingan antara penunjuk dan integer\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!