zoukankan      html  css  js  c++  java
  • C++ 传参的方式 值传递,指针传递,引用传递

    关于传参总是搞晕,这里总结下:

    值传递:

    void func(int n)
    
    {
    
    }
    void main()
    {
    int  x = 1;
    func(x);
    return;
    }
    

      这种就是值传递,在func函数里,对参数n进行赋值操作,main函数的x始终是1。

    指针传递:

    我理解的指针传递有两种场景:

    1)修改指针指向的内容,举例:

    class A
    {
    public:
    A();
    ~A();
    public:
    int k;
    }
    void func(A* p) { P->K = 6; } void main() { A*p = new A; p->k = 5; func(p); return; }

      这种情况不会修改实参所指向的内容,就是调用完func函数,main函数的p指针的k值变成了6。因为这是修改指针指向的内容的值。再看下面的例子:

    void func(int * n)
    {
    	int l = 9;
    	n = &l;
    }
    void main()
    {
    	int k = 1;
    	int* n = &k;
    	func(n);
    }
    

      这个情况,执行完func函数,n的指向还是1,不会变。

    引用传递:

    引用就是给当前地址起个别名,引用永远修改的都是,传入参数的值。

    void func(int&n)
    {
    n =100;
    }
    void main()
    {
    int  k 120;
    func(k);
    }
    

      这个情况执行完,func函数,K的值就变成了100.

  • 相关阅读:
    算法:基于分布的排序算法
    剑指offer:镜像二叉树
    算法:基于比较的排序算法
    LeetCode做题笔记-135
    初识YOLO
    PHP课设图览
    浅谈C语言整型与浮点型转换
    SQL Server EXPRESS 安装
    2020CCPC 东北四省(区域)赛题目一览
    2020CCPC 黑龙江省赛题目一览
  • 原文地址:https://www.cnblogs.com/132818Creator/p/11277036.html
Copyright © 2011-2022 走看看