zoukankan      html  css  js  c++  java
  • 006_linuxC++之_引用

    1. 什么是“引用”?申明和使用“引用”要注意哪些问题?

    答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。

    (一)直接看代码

    (二)使用符号"&"进行引用,在这里不是取址的意思

    2. “引用”与指针的区别是什么?

    指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;

    而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是上面提到的对函数传ref和pointer的区别。

     1 #include <iostream>
     2 using namespace std;
     3 int add(int a){
     4     a = a + 1;
     5     return a;
     6 }
     7 int add(int *a){
     8     *a = *a + 1;
     9     return *a;
    10 }
    11 int add_ref(int &b){
    12     b = b + 1;
    13     return b;
    14 }
    15 int main(int arg,char ** argv){
    16     int a = 99;
    17     int &c = a;                /*使用符号&来进行引用,引用之后c++就相当于a地址中的数进行a++*/
    18     cout<<add(a)<<endl;        /*传入的是参数*/  /*a = 99*/
    19     cout<<"a = "<<a<<endl;                      /*a = 99*/
    20     
    21     cout<<add(&a)<<endl;    /*传入的地址*/    /*a = 100*/
    22     cout<<"a = "<<a<<endl;                      /*a = 100*/
    23 
    24     cout<<add_ref(a)<<endl;    /*引用*/          /*a = 101*/
    25     cout<<"a = "<<a<<endl;                      /*a = 101*/
    26     
    27     c++;                                      /*a = 102*/
    28     cout<<"a = "<<a<<endl;                      /*a = 102*/
    29     cout<<"c = "<<c<<endl;                      /*a = 102*/
    30     return 0;
    31 }
    main.cpp

     

  • 相关阅读:
    4.3.4 查询语法基础(2)
    4.3.4 查询语法基础(1)
    一个存储过程调用另一个存储过程 (2009-12-29 13:57:05)
    4.3.3 基于行的操作
    4.3.2 基于集合的操作
    4.3 数据操纵语言(DML)
    4.2 从哪儿开始
    子查询、联合查询和连接查询
    4.1 SQL的本质
    本书说明
  • 原文地址:https://www.cnblogs.com/luxiaoguogege/p/9690182.html
Copyright © 2011-2022 走看看