zoukankan      html  css  js  c++  java
  • 所谓的传值和引用

    一直反反复复总是记不太清

    今天总结:

    如果你在调用的时候用了引用,对应的函数参数必须有*

    如果你在调用的时候没有&,则如果你传的是指针,则对应函数要有参数要有*,如果想把参数本身传过去,要在函数定义的参数处加&

    对于字符串而言和对于整型而言 cout<<a不一样的

    void fun(int *a)
    {
    cout<<a+1<<endl;
    }
    int main()
    {
    int a=3;
    fun(&a);
    }

    输出的是一个地址,参数是指针

    void fun(int *a)
    {
    cout<<*a+1<<endl;//取内容
    }
    int main()
    {
    int a=3;
    fun(&a);
    }

    。。。。。。。。。。。。。。。。。

    void fun(int &a)
    {
    cout<<a+1<<endl;
    }
    int main()
    {
    int a=3;
    fun(a);
    }//4

    参数是常量本身

    。。。。。。。。。。。。。。。

    void fun(char *a)
    {
    cout<<a+1<<endl;
    }
    int main()
    {
    char *str="fdsfds";
    fun(str);
    }//dsfds

    ...................

    void fun(char *&a)
    {
    cout<<a+1<<endl;
    }
    int main()
    {
    char *str="fdsfds";
    fun(str);
    }一样的

    。。。。。。。。。。。。。。。。

    void fun(char *a)
    {
    cout<<*a<<endl;
    }
    int main()
    {
    char *str="afdsfds";
    fun(str);
    }//a

    ................................

    。。。。。。。。。。。。。

    void fun(char **a)
    {
    cout<<a+1<<endl;
    }
    int main()
    {
    char *str="fdsfds";
    fun(&str);
    }//一个地址

    。。。。。。。。

    void fun(char *a)
    {
    cout<<&a<<endl;
    }
    int main()
    {
    char *str="afdsfds";
    fun(str);
    }

    指针的地址

    。。。。。。。。。。。。。。。

    void fun(char *a)
    {
    cout<<&(*a)<<endl;
    }
    int main()
    {
    char *str="afdsfds";
    cout<<str;
    fun(str);
    }

    两遍afdsfds

    *a=a;a的地址是字符串首地址,相当于str

    。。。。。。。。

    void fun(char **a)
    {
    cout<<*a+1<<endl;
    }
    int main()
    {
    char *str="fdsfds";
    fun(&str);
    }//dsfds

  • 相关阅读:
    关于ARMv8另外几个问题
    C++中的内存区域及其性能特征
    外点惩处函数法·约束优化问题
    【LaTeX排版】LaTeX论文模版
    fatal error: vector: No such file or directory
    【UNIX网络编程(三)】TCP客户/server程序演示样例
    LOJ#6437. 「PKUSC2018」PKUSC
    mybatis 学习一 建立maven项目
    maven学习5 构建MyBatis项目
    maven学习4 使用Maven构建Spring项目
  • 原文地址:https://www.cnblogs.com/8335IT/p/5907719.html
Copyright © 2011-2022 走看看