c++ - 指向结构成员变量的指针

标签 c++ pointers struct

class Main
{
  Struct BranchSub
  {
    Sub()
    {
      subName[0] = '\0';
    }
    char subName[20];
  };

  struct MainSub
  {
  Sub sub[20];
  };
};

我想要一个方法,当 subName 与给定文本匹配时,该方法将返回指针 subName。 例如:

MainSub test;
if(strcmp(test.BranchSub[5].subName, "Hello") == 0);//return pointer to `test.Branchsub[5].subName`

可以吗?? 还是有其他方法可以达到预期的效果?

最佳答案

是的,可以使用 test.BranchSub[5].subName .

对于问题的第二部分,您应该使用 std::string :

class Main
{
  struct BranchSub
  {
    std::string subName;
  };

  struct MainSub
  {
    BranchSub sub[20];
  };
};

然后

MainSub test;
if(test.sub[5].subName == "Hello")

更清晰。

您甚至可以使用 std::vector<BranchSub>而不是 BranchSub sub[20] .

关于c++ - 指向结构成员变量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551371/

相关文章:

c++ - 如何在 C++ 中声明外部类指针?

c++ - 使用结构中的 ncurses 扩展字符

c - 错误: member reference base type '*****' (aka '*****' ) is not a structure or union

c++ - 无法在 Mac 上访问 std vector 迭代器 _Ptr

c++ - 如何在 C++ 中返回唯一所有权

c - 将指针分配给整数数组时指针类型不兼容

c++ - 如果不在同一范围内,则无法打开 SFML 2 窗口

c++ - 在 C++ 中访问通用结构的成员会出错

c++ - 自动生成 move 构造函数

C++成员变量在构造函数后丢失值