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

    C里没有引用,要把后缀改成cpp之后gcc才能识别为c++程序,关于gcc和g++的区别在另一篇,eclipse要重启重编译(不知怎么,eclipse不重启的话就总还是报错),编译通过了。

    "引用传递"的性质象"指针传递",而书写方式象"值传递",即使用时跟普通变量一样,看不出是使用了普通变量还是引用。

    引用是变量的别名。

    声明时必须初始化,并且从一而终。

    而函数返回引用,要求在传参里必须有引用或者指针类型作为被返回的值

    以下写法一和三都是函数返回引用,写法二只是返回引用类型的参数。

    写法一,函数返回值和传参都用引用:

    1. #include <stdio.h>  
    2. #include <stdlib.h>  
    3.   
    4. int &func(int& t)  
    5. {  
    6.   return t;  
    7. }  
    8.   
    9. int main(int argc, char * argv[]) {  
    10.   
    11.  int a=0;  
    12.  int b=func(a);  
    13.  printf("&a=0X%08X,&b=%08X\n",&a,&b);  
    14.         printf("a=%d, b=%d", a, b);  
    15.  return 0;  
    16. }  

    输出是:
    &a=0X0022FF4C,&b=0022FF48
    a=0, b=0

    写法二,传参用引用:

    1. #include <stdio.h>  
    2. #include <stdlib.h>  
    3.   
    4. int func(int& t)  
    5. {  
    6.   return t;  
    7. }  
    8.   
    9. int main(int argc, char * argv[]) {  
    10.   
    11.       int a=0;  
    12.       int b=func(a);  
    13.       printf("&a=0X%08X,&b=%08X\n",&a,&b);  
    14.       printf("a=%d, b=%d", &a, &b);  
    15.       printf("a=%d, b=%d", a, b);  
    16.   
    17.     return 0;  
    18. }  

    输出:
    &a=0X0022FF4C,&b=0022FF48//十六进制变量地址
    a=2293580, b=2293576a=0, b=0//十进制变量地址,变量值

    写法三,函数返回值用引用,传参用指针:

    1. #include <stdio.h>  
    2. #include <stdlib.h>  
    3.   
    4. int &func(int* t)  
    5. {  
    6.   return *t;  
    7. }  
    8.   
    9. int main(int argc, char * argv[]) {  
    10.   
    11.       int a=0;  
    12.       int b=func(&a);  
    13.       printf("&a=0X%08X,&b=%08X\n",&a,&b);  
    14.       printf("a=%d, b=%d", a, b);  
    15.   
    16.     return 0;  
    17. }  

    输出:

    &a=0X0022FF4C,&b=0022FF48
    a=0, b=0

  • 相关阅读:
    web测试用例表(自用)
    程序员技术练级攻略
    整理:Google jQuery 引用地址大全和方法(转)
    开发神器之--Sublime Text
    Intellij编译时报“java: System Java Compiler was not found in classpath” 解决办法
    JAVA编译异常处理:java.lang.OutOfMemoryError: PermGen space
    mongo中查询Array类型的字段中元素个数
    BigDecimal进行除法divide运算注意事项
    用来代替本机IP的万能IP:127.0.0.1
    oracle中sys和System的默认密码
  • 原文地址:https://www.cnblogs.com/lionfight/p/2603865.html
Copyright © 2011-2022 走看看