引用、指针和指向指针的指针在函数形参中的应用

初学VC,看到好多函数中都会有引用、指针或指向指针的指针这些形参,不是很好理解。这两天思考了一下,理解如下。
以后打算坚持每周发至少一篇博客,这里首次试用了Markdown编辑器。
欢迎交流学习。
  1. 形参用的引用

    1. 概念
      对于引用,最简单而准确的理解是:引用就是一个变量的别名。相当于给一个变量a又起了一个名字b,其实它们俩本身还是一个变量,在程序中对a或b的任何操作都是对这一个变量的操作。
    2. 示例
      新建一个WIN32控制台程序——>选择空项目,然后添加一个.cpp源文件,输入如下代码:
      
      #include <iostream>
      
      using namespace std;
      
      void get(char& b)
      {
          b = '#';
      }
      int main()
      {
          char a;//对比三者对变量的定义
          get(a);//对比三者函数参数的使用方法
          cout << a <<endl;
      
          return 0;
      }

    Ctrl+F5执行程序,输出如下结果;

  2. 形参中的指针

    1. 概念
      形参中使用指针,同样也可以达到传参的效果。但是原理不同,使用方法也有些不同。如下示例:形参指针b指向的是变量a的地址,所以改变b指向的地址(即变量a的地址)的值自然也就改变了a的值。
    2. 示例
      
      #include <iostream>
      
      using namespace std;
      
      void get(char* b)
      {
          *b = '#';   //对b所指向的地址(即变量a的地址)赋值,从而改变了变量a的值。
      }
      int main()
      {
          char a;//对比三者对变量的定义
          get(&a);//对比三者函数参数的使用方法//把a的地址赋给指针b;即char* b = &a;
          cout << a <<endl;
      
          return 0;
      }

    输出结果与上一示例相同。

  3. 形参中指向指针的指针

    1. 概念
      很多函数中会使用指向指针的指针作为形参,这样初学会不太好理解。实质只是比指针更深层了一步,程序中有时为了传递数组或字符串等经常会使用这种方式。
    2. 示例
      
      #include <iostream>
      
      using namespace std;
      
      void get(char** b)
      {
          *b = "###########";//即char** b = &a;则*b = a;
      }
      int main()
      {
          char c = 'c';
          char* a = &c;//对比三者对变量的定义//指针使用前最好初始化一下
          get(&a);//对比三者函数参数的使用方法
          cout << a <<endl;
      
          return 0;
      }

    输出结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值