C++ 函数参数中的指针

C++ Pointers in function parameters

本文关键字:指针 参数 函数 C++      更新时间:2023-10-16

如果我声明一个函数:

vector<int> & call(string *target)

我应该如何在函数中使用 target 与另一个字符串进行比较?例如:

string str;
if(str == //string in target){
...
}

作为&target,还是简单地target? 另外,回报应该是什么样子?我假设它应该是:

return &some_vector;

因为这是函数声明中的类型。 最后,相反的情况呢?那是:

vector<int> & call(string &target) 

当在函数中并想要使用字符串时,它是否像以下那样简单:

*target

关于你的第一个问题是

if(str == *target){

关于你的第二个问题,我的建议很简单,不要。看起来您正在尝试返回对局部变量的引用。这是一个众所周知的新手错误,只会使您的程序崩溃。

关于你的第三个问题是

if(str == target){

您需要取消引用指针才能获取对象。也就是说,使用 *

if (str == *target) {

另外,回报应该是什么样子?

您返回的是引用,而不是指针。这意味着你只需要返回对象的名称:

return some_vector;

最后,相反的情况呢?

如果target是引用(不是指针),则只需使用对象的名称即可。这不涉及任何引用。