>  기사  >  백엔드 개발  >  C에서 한 줄에 여러 포인터를 올바르게 선언하는 방법은 무엇입니까?

C에서 한 줄에 여러 포인터를 올바르게 선언하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 03:28:02261검색

How to Correctly Declare Multiple Pointers in a Single Line in C  ?

한 줄에 여러 포인터 선언: 구문 이해

C에서 한 줄에 여러 개체 포인터를 선언할 때 흔히 저지르는 함정 구문이 올바르게 이해되지 않으면 발생할 수 있습니다. 다음 코드를 고려해보세요.

<code class="cpp">private:
    sf::Sprite* re_sprite_hair;
    sf::Sprite* re_sprite_body;
    sf::Sprite* re_sprite_eyes;</code>

이 코드는 sf::Sprite 유형의 객체를 가리키는 세 개의 포인터를 성공적으로 선언합니다. 그러나 구문을 다음 형식으로 변경하면 컴파일러 오류가 발생합니다.

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, re_sprite_body, re_sprite_eyes;</code>

이유:

이 두 선언의 차이점은 다음과 같습니다. 두 번째 버전에서는 별표 *를 사용합니다. C에서 별표는 포인터 선언을 나타냅니다. 생략하면 객체 자체가 선언됩니다.

첫 번째 버전에서는 각 변수에 별표가 있어 세 변수 모두 포인터임을 나타냅니다. 두 번째 버전에서는 별표가 re_sprite_hair에만 적용되어 포인터가 되고, re_sprite_body와 re_sprite_eyes는 sf::Sprite 유형의 객체가 됩니다. 잘못된 구문으로 인해 컴파일러 오류가 발생합니다.

올바른 구문:

한 줄에 여러 포인터를 올바르게 선언하려면 별표를 사용하는 것이 중요합니다. 각 변수. 올바른 구문은 다음과 같습니다.

<code class="cpp">private:
    sf::Sprite* re_sprite_hair, *re_sprite_body, *re_sprite_eyes;</code>

각 변수에 별표를 적용하면 컴파일러는 세 변수를 모두 포인터로 인식하므로 선언이 유효합니다.

위 내용은 C에서 한 줄에 여러 포인터를 올바르게 선언하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.