首页  >  文章  >  后端开发  >  如何在 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