C++引用和指针

20 篇文章 0 订阅

作者:tongqingliu
转载请注明出处:http://blog.csdn.net/qq_22186119/article/details/73476808

C++引用和指针

C++引用

引用的基本用法:

int a = 12;
int &b = a; // b指向a,b是a的引用,b是a的别名

下面看一个实例:

#include<iostream>
#include<vector>
using namespace std;
int main()
{
    int val = 123;
    int &refval = val; //refval是val的别名

    cout << "val=" << val << endl;
    cout << "refval=" << refval << endl;

    refval = 0;
    cout << "val=" << val << endl;
    cout << "refval=" << refval << endl;

    system("pause");
}

程序输出:

val=123
refval=123
val=0
refval=0
请按任意键继续. . .

引用其实就是给对象起一个别名,比如张明的别名是小明,那么你打张明和打小明都是一个意思,打的都是同一个人。
但是有几点需要注意:
- 引用必须初始化,int &val;错。
- 引用类型的初始值必须是一个对象,而不能是个数int &val = 1;错。
- 引用和引用的对象必须同一类型,double a = 1.2; int &val = a;错。
- 引用不是对象,不能定义引用的引用,int a = 1; int b = 2; int &c = a; int &c = b;错。

指针

和引用一样,指针可以间接访问其他对象。
指针的特点:
- 指针本身就是一个对象,可以赋值也可以拷贝,也可以先后指向不同的对象。
- 指针在定义时可以不赋值。

指针的基本用法;

int *ip1, *ip2;//声明指针,ip1和ip2都是指向int型对象的指针
double dp, *dp2;//dp是double型对象,dp2是指向double型对象的指针
int ival = 32;
int *p = &ival;//p是指向变量ival的指针,p存放变量ival的地址

上面最后一行,p存放变量ival的地址,*p表示ival的值(*是解引用符),&ival表示取ival的地址。

#include<iostream>
using namespace std;
int main()
{
    int val = 123;
    int *pval = &val;
    cout << "val=" << val << endl;
    cout << "pval=" << pval << endl;
    cout << "&val=" << &val << endl;
    cout << "*pval=" << *pval << endl;

    system("pause");
}

程序运行结果:

val=123
pval=00A2FBE0
&val=00A2FBE0
*pval=123
请按任意键继续. . .
  • 引用不是对象,没有实际地址,不能定义指向引用的指针。
  • 指针类型必须和所指向对象的类型一样。

参考:
C++ primer 第五版

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值