zoukankan      html  css  js  c++  java
  • C++函数返回为引用

    #include <iostream>
    #include <string>
    using std::cout;
    using std::endl;
    using std::string;
    
    char &get_val(string &str, string::size_type ix){
        return str[ix];
    }
    
    int main(int args, char*argv[]){
        string inputStr=argv[1];
        cout << "you input: " << inputStr << endl;
        get_val(inputStr,1)='b';
        cout << "now, input become: " << inputStr << endl;
        return 0;
    }
    

     之前看到ROS里面, 居然有函数的返回值为xx &, 蒙了(这就是我为什么学C++的原因), 看了几天书, 意思是返回值为一个引用, 特别适合当"左值"(书上说的), 妈的, 你直接写一个函数, 把要替换的值传进去不完了么...

    #include <iostream>
    #include <string>
    
    using std::cout;
    using std::string;
    using std::endl;
    
    void changeStr(string& str, int ix, char replaceChar){
        str[ix]= replaceChar;
    
    }
    
    int main(int args, char*argv[]){
        string inputStr = argv[1];
        cout << "you input " << inputStr << endl;
        changeStr(inputStr, 1, 'c');
        cout << "now it became " << inputStr << endl;
        return 0;
    }
    

     上面的方法一样治疗肾虚, 异曲同工.

    但是会Java的我不仅想问, string & str跟string str作为形参, 有啥分别?因为Java里面是没有这个&这个东西的, 最起码我不知道有这个东西, 我试验了一下, 在C++/C 里面加这个, 理论上, 直接把形参给改变了, 妈的, 我写了上万行的C, 可以说从来没用过这个&....

  • 相关阅读:
    用call/apply实现bind
    FED1 修改 this 指向(中等)
    46. 全排列(中等)
    JavaScript 用七种方式教你判断一个变量是否为数组类型(转)
    179. 最大数(中等)
    125. 验证回文串(简单)
    执行git pull命令时出错
    前端修改滚动条样式
    js实现每日定时任务
    Vue实现验证码控件
  • 原文地址:https://www.cnblogs.com/Montauk/p/6879286.html
Copyright © 2011-2022 走看看