访问嵌套结构的数据成员并将结构传递给函数C ++

时间:2019-06-23 15:21:25

标签: c++

我有一个简单的问题,但我需要了解它背后的概念。

  • 如何通过将第一个结构的数据实例化为第二个结构的指针来访问它。

  • 如果我将第一个结构的数据成员作为指针,那么如何通过访问它们在其中打印出值,例如

    struct temp { int a =5; float b = 6.0; i = &a; f = &b; int *i; float *f; };

我正在处理一个复杂的代码,因此我需要了解其背后的逻辑,因为它是如何在内存和逻辑方面工作的。

非常感谢您的时间。

#include <iostream>
using namespace std;
struct temp {
int i=5;
float f=6.0;
};
struct qlt {
temp *d;

};

int sum (qlt *s)
{   
int a = s->d->i;
//   std::cout<<a;
}
int main() {
 qlt x;
//int b = ;
 std::cout <<sum(&x);
 return 0;
}

1 个答案:

答案 0 :(得分:2)

qlt x;

这将创建一个qlt好吧,但其中没有d。因此,您有一个悬空的指针(因为它也未初始化)。

qlt x;
temp b;
x.d = &b;

这将是C风格的解决方案。 C ++有更好的方法来实现它。

此刻忘记 all 指针,并使用STL。