嘿伙计们,所以我使用gcc作为我的编译器。我想将一个结构的指针传递给一个函数,并修改指针(而不是if中的内容)。我知道我可以这样做:
void addDate(int & *timeinfo, string &response);
我试图这样做:
void addDate(struct tm & *timeinfo, string &response);
当我这样做时,我收到此错误“无法声明指向'struct tm&'的指针。我怎样才能做到这一点?是我做双指针的唯一选择?我知道这不是那么糟糕,但我喜欢尽可能地避免这些。
答案 0 :(得分:1)
struct tm
是一种类型。
struct tm & timeinfo
表示timeinfo正在引用该类型的变量。
struct tm * timeinfo
表示timeinfo是指向该类型变量(可能存在或可能不存在)的指针。
struct tm * & timeinfo
表示timeinfo是对变量(存在)的引用,该变量恰好是指向struct tm
类型的变量(可能存在或可能不存在)的指针。
struct tm & *
没有任何意义。你不能有一个指向引用的指针,因为引用本身不是变量,而指针指向变量。
注意:当我说“可能存在或不存在”时,我的意思是该变量可能会或可能不会在内存中分配。