C++ 函数参数中的指针
C++ Pointers in function parameters
如果我声明一个函数:
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
是引用(不是指针),则只需使用对象的名称即可。这不涉及任何引用。
相关文章:
- 为函数定义符号不明确的指针参数
- 构造函数 (C++) 中的 char 指针参数存在问题
- 按引用调用与按指针参数调用的差异 前递增和后递增
- 为什么具有指针参数的成员函数需要指向指针的指针?
- 通过引用函数传递指针参数是什么意思?
- 从double到double*的指针参数
- void 函数中的指针参数返回不一致的值
- 无法向上转换指针到指针参数
- 将数组动态分配到具有指针参数的函数中
- 模板函数指针参数与构造函数参数
- 使用通用函数指针参数化函数模板的简洁方法
- 如何为C++字符串分配空指针参数?
- C++带有指针参数的函数
- 指针参数的默认值
- 将常量添加到函数模板指针参数
- 如何传递unique_ptr<T>代替原始*输出*指针参数?
- 不带星号的函数指针参数
- 功能指针参数参数转换为const
- 将指针参数传递给双指针参数
- 如何调试指针参数是否通过函数修改