C++中引用与指针

引用

        引用为对象起了另一个名字,并且引用是将引用与初始值对象绑定在一起直到程序结束,无法重新绑定引用,所以引用一定要进行初始化。引用通过声明符&d来表示,其中d是声明的变量名。

        简单理解引用,就是给一个对象起另一个名字,操作的时候操作的是一个对象,与类型别名不同,引用主要用在函数传参的时候,在一些情况下,函数传参的时候想要改变传入的参数就可以利用引用来实现。

int ival = 1024;
int &refval = ival;

函数传参使用引用的简单例子:交换两个变量的值。

#include<iostream>
using namespace std;
没有用引用传参,没有改变参数本身
void exchange1(int a, int b)    
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
利用引用传参,改变了参数本身
void exchange2(int& a, int& b)
{
	int temp;
	temp = a;
	a = b;
	b = temp;
}
int main()
{
	int a = 1, b = 2;
	exchange1(a, b);
	cout << "a = " << a << " b = " << b << endl;
	exchange2(a, b);
	cout << "a = " << a << " b = " << b << endl;
	system("pause");
	return 0;
}

      

指针

        指针耳熟能详,只要是学过各种编程语言就能知道指针这个重要的东西。

 

         本人对指针的理解,就是定义一个指针,这个指针里存入的地址,在计算机中所有内容都存在所对应的地址中,指针就指向了该地址,对指针解引用也就在这个地址中拿出了所存的内容。我们想去某个地方买某新东西,指针就是指向这个东西所在的地点,我们就会到这个地点买我们需要的东西。

        c++在使用指针时一定要知道&符是取址符。与引用类似,指针实现了对其他对象的直接访问,但他与引用有很多不同点。其一,真真本身就是一个对象,允许指针赋值和拷贝,而且指针可以指向不同的对象。其二指针不用在定义时就进行初始化,和其他内置类型一样不进行初始化就会有个默认值。

    int* p;
	int a = 10;
	p = &a;
	cout << p << " " << *p << endl;

 

通过输出,我们可以看出,p中存入的时a的地址,*p解引用是p地址中的值。

 下面也用指针写交换两个变量值的函数

#include<iostream>
using namespace std;
void exchange(int* a, int* b)
{
	int temp;
	temp = *a;
	*a = *b;
	*b = temp;
}

int main()
{
	int a = 1;
	int b = 2;
	exchange(&a, &b);
	cout << "a = " << a << "," << "b = " << b << endl;
	system("pause");
	return 0;
}

 

指向指针的指针

        简单理解就是指针中的内容存入的是变量的地址,而指针也有自己的地址,所以指针也可以指向指针。

int ival = 1023;
int *p = &ival;        p指向一个int型的数
int *pp = &p;          pp指向一个int型指针

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

门三o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值