C++ 试图打印作为数组元素的对象变量的地址

C++ 试图打印作为数组元素的对象变量的地址,c++,arrays,memory,reference,C++,Arrays,Memory,Reference,我用这段代码来获取'b'变量的地址。这是一种方法吗 printf("%p \n",&r[1].b); r被声明为存储“C”类型对象的数组。类型C的对象有变量a、b和x。我想知道b的地址,是一个整数 另一个问题。。是否可以对代码进行泛化,以便我可以获取并打印任何对象的地址,而不管它们的类型如何 您的代码看起来正常。 要概括,您需要一个模板 template <class T> void printAddressOf(T const &t) { printf("

我用这段代码来获取'b'变量的地址。这是一种方法吗

printf("%p \n",&r[1].b);
r被声明为存储“C”类型对象的数组。类型C的对象有变量a、b和x。我想知道b的地址,是一个整数

另一个问题。。是否可以对代码进行泛化,以便我可以获取并打印任何对象的地址,而不管它们的类型如何

您的代码看起来正常。 要概括,您需要一个模板

template <class T> void printAddressOf(T const &t)
{
    printf("%p \n", &t);
}
这些方法在大多数简单的情况下都有效。
当“T”重载运算符(&())时会更麻烦-您必须再做一些模板技巧来绕过它。STD的一些实现:向量会做到这一点。

刚刚编辑了这个帖子,这是C++的。有人能提供帮助吗?看起来很好,孤立地看,没有看到任何其他代码。NITSCODY:你可能喜欢使用IoSokes,除非你有一些具体的理由不去;布兰迪诺:你需要什么帮助?这将打印
r[1].b的地址,并适用于任何类型(除非它以某种邪恶的方式重载
运算符&
)。
#define PRINTADDRESS(t) (printf("%p \n", &(t)))