无法声明指向'struct tm&

时间:2017-04-04 01:56:32

标签: c++

嘿伙计们,所以我使用gcc作为我的编译器。我想将一个结构的指针传递给一个函数,并修改指针(而不是if中的内容)。我知道我可以这样做:

void addDate(int & *timeinfo, string &response);

我试图这样做:

void addDate(struct tm & *timeinfo, string &response);

当我这样做时,我收到此错误“无法声明指向'struct tm&'的指针。我怎样才能做到这一点?是我做双指针的唯一选择?我知道这不是那么糟糕,但我喜欢尽可能地避免这些。

1 个答案:

答案 0 :(得分:1)

struct tm是一种类型。

struct tm & timeinfo表示timeinfo正在引用该类型的变量。

struct tm * timeinfo表示timeinfo是指向该类型变量(可能存在或可能不存在)的指针。

struct tm * & timeinfo表示timeinfo是对变量(存在)的引用,该变量恰好是指向struct tm类型的变量(可能存在或可能不存在)的指针。

struct tm & *没有任何意义。你不能有一个指向引用的指针,因为引用本身不是变量,而指针指向变量。

注意:当我说“可能存在或不存在”时,我的意思是该变量可能会或可能不会在内存中分配。