> 백엔드 개발 > C++ > 내 C 코드에서 \'ISO C는 포인터와 정수 간의 비교를 금지합니다\'를 발생시키는 이유는 무엇입니까?

내 C 코드에서 \'ISO C는 포인터와 정수 간의 비교를 금지합니다\'를 발생시키는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-29 11:20:02
원래의
641명이 탐색했습니다.

 Why Does My C   Code Throw

컴파일러 오류: C의 포인터와 정수 비교 금지

컴파일 중에 "ISO C에서 포인터와 정수 사이의 비교를 금지합니다"라는 컴파일러 문제가 발생합니다. , 포인터와 정수 간의 부적절한 비교와 관련된 코드 오류를 강조합니다. 해결 방법을 자세히 알아보기 위해 제공된 코드를 살펴보겠습니다.

주어진 코드에서 "y"에 대해 답변을 테스트하는 if 문 내에서 오류가 발생합니다.

<code class="cpp">if (answer == "y") ...</code>
로그인 후 복사

여기 , 대답은 문자 변수인 반면 "y"는 C 스타일 문자열 리터럴입니다. 문자 변수를 문자에 대한 포인터("y"는 포인터로 변환됨)와 비교하려고 하면 컴파일러 오류가 발생합니다.

이 문제를 해결할 수 있는 두 가지 해결 방법은 다음과 같습니다.

1. 문자열 변수 사용:

답변에 문자 변수 대신 문자열 변수를 사용하는 것이 좋습니다.

<code class="cpp">string answer;</code>
로그인 후 복사

이는 모범 사례에 부합하며 포인터 정수를 방지합니다. 비교 오류.

2. 문자 상수 사용:

또는 문자열이 아닌 문자를 나타내는 작은따옴표와 함께 문자 상수를 활용할 수 있습니다.

<code class="cpp">if (answer == 'y') ...</code>
로그인 후 복사

두 솔루션 모두 포인터를 효과적으로 해결합니다. 정수 비교 금지로 올바른 코드 실행이 보장됩니다.

위 내용은 내 C 코드에서 \'ISO C는 포인터와 정수 간의 비교를 금지합니다\'를 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿