컴파일러 오류: ISO C의 포인터-정수 비교 금지
Bjarne Stroustrup의 C 교과서에 있는 간단한 함수를 실험하는 동안 개발자는 컴파일 오류가 자주 발생합니다: "ISO C는 포인터와 정수 간의 비교를 금지합니다." 이 오류는 포인터와 정수를 비교할 때 발생합니다.
이 문제의 한 가지 사례는 문자 입력을 문자열 "y"와 비교할 때 발생합니다. 제공된 코드에서:
<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>
코드에서 응답을 문자(char)로 정의하고 "y"는 문자열 리터럴이기 때문에 오류가 발생합니다. 이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.
두 솔루션 모두 정수에 대한 포인터를 다른 정수에 대한 포인터 또는 문자열에 대한 포인터와 비교함으로써 컴파일러의 제한 사항을 해결합니다.
위 내용은 C가 포인터와 정수 비교를 금지하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!