c++引用

一般c语言经常用指针传递参数,修改变量的值,但是在c++中多了引用的语法,作用类似

代码分析如下

/*swap.c*/
/*c程序中通过指针传递参数来交换a b的值*/
#include <stdio.h>
void swap(int* a,int *b)
{
    int t=*a;
    *a=*b;
    *b=t;
}
int main()
{
    int a=1;
    int b=2;
    swap(&a,&b);
    printf("a=%d,b=%d\n",a,b);/*打印结果,a=2.b=1*/
    return 0;
}

c++代码如下

/*swap.cpp*/
/*c++程序中通过引用来交换a b的值*/
#include <stdio.h>
void swap(int &a,int &b) /*引用的符号类似取址符号*/
{
    int t=a;     /*我们注意到和上面不同的是*号没了*/
        a=b;     
        b=t;
}
int main()
{
    int a=1;
    int b=2;
    swap(a,b);  /*我们注意到&号没了*/
    printf("a=%d,b=%d\n",a,b);/*打印结果,a=2.b=1*/
    return 0;
}

const变量引用

代码如下

/*text.cpp*/
#include <stdio.h>
int main()
{
    int a=1;
    const int &b=a; /*b引用a*/
    int *p=(int *)&b; /*由于b是对a的引用,所以这条语句等价于取a的地址*/
    b=3;/*其实这条语句是错误的,由于b被const修饰所以b不能作为左值*/
    *p=3;    /*这才是合法的*/
    printf("a=%d\n",a);/*打印结果,a=3*/
    return 0;
}

const常量引用

/*text1.cpp*/
#include <stdio.h>
int main()
{
    const int &a=1;   /*常量的引用,这是编译器给a分配空间*/
    int *p=(int *)&a; /*p指向a*/
    a=3;/*其实这条语句是错误的,由于a被const修饰所以a不能作为左值*/
    *p=3;    /*这才是合法的*/
    printf("a=%d\n",a);/*打印结果,a=3*/
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值