通过引用传递指针值

时间:2010-10-13 21:16:00

标签: c++ pointers

是否可以引用指针变量所持有的地址值。

例如,我的函数是something(int &num);,我需要传递指针,例如int* i = new int(1); like &(*(i));可以这样做吗?

我正在使用qt而我不知道为什么会发生以下情况......

  • *&ui->numberInput->text()提供QString
  • &ui->numberInput->text()提供*QString
  • *ui->numberOutput->text()提供*QLabel-text()
  • ui->numberInput->text()提供QString

它不会被接受为&QString

有人可以帮我解决这个问题

3 个答案:

答案 0 :(得分:4)

你只需像这样传递它

something(*i);

答案 1 :(得分:0)

  

它不会被接受为& QString ??

&在C ++中有一些不同的用途。在类型的声明中,它表示“引用”,而在使用变量时,它可以是“地址”。你在这里指出的并不完全清楚。向我们展示你想要传递的内容,然后你试图传递给它的函数的声明可能更清楚。

那就是说,你提到QLabel::text(),它会返回QString。如果您想将text()的结果传递给参考QString的函数,那么您可以直接执行此操作。

// Given a function with this declaration
void SomeFunction(const QString& parameter);
// and also this varable.
QLabel* l = new QLabel;

// Then the following call would work:
SomeFunction(l->text());

另一方面,如果这不是您的意思,那么请告诉我们您遇到问题的实际代码以及您从中获得的错误消息。

答案 2 :(得分:-1)

是。语法是*& p。