Ralat Perbandingan ISO C: Penunjuk dan Nombor Bulat
Semasa mengerjakan contoh daripada buku C Bjarne Stroustrup, sesetengah pengguna telah menemui penyusunan- ralat masa yang menunjukkan bahawa ISO C melarang perbandingan antara penunjuk dan integer. Isu ini timbul daripada perbandingan yang melibatkan pembolehubah char dan pemalar rentetan dalam fungsi accept().
Punca:
Ralat berlaku kerana ISO C melarang perbandingan langsung penuding aksara (seperti aksara*) dengan integer (seperti nilai berangka aksara yang disertakan dalam petikan berganda, cth., "y").
Penyelesaian:
Terdapat dua cara utama untuk menyelesaikan ralat ini:
Pendekatan Pilihan: Menggunakan Pembolehubah Rentetan:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; string answer; cin >> answer; if (answer == "y") return true; return false; }</code>
Pendekatan Alternatif: Menggunakan Petikan Tunggal:
<code class="cpp">#include <iostream> #include <string> using namespace std; bool accept() { cout << "Do you want to proceed (y or n)?\n"; char answer; cin >> answer; if (answer == 'y') return true; return false; }</code>
Atas ialah kandungan terperinci Mengapa ISO C Melarang Membandingkan Penunjuk dan Integer, dan Bagaimana Saya Boleh Membetulkan Ralat Ini dalam Kod Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!