引用与指针

首先介绍引用:

引用其实就相当于给一个变量起了一个别名,以下举一个简单的例子:

int a;
int &b=a;

上述就是将a取了一个外号b,此后a,b就相当于是一个变量了,一个变,其余一个会跟着产生相同的变化,如下:

 引用通常用于传递函数的参数,不加引用(&)传递参数的时候会把参数里所有的数据全部复制一遍再传进函数,当参数里内容较多的时候会变得很慢。

通常引用还会用于一些求模的问题,先给出代码:

const int p=10000007;
void inc(int &x,int y)
{
	x+=y;
	if(x>=p)
	x-=p;
}

偶尔我们会遇见那种要取模的问题,通常是遇见那种在计算过程的某一阶段时候数值变得很大时,题目通常会让你取模,不过对于上述代码我们需要明确的几个问题就是首先p的范围是0到p的,否则就达不到题目的要求效果,总而言之只是给读者一个简单的例子便于理解引用。

 接下来将进行指针的相关介绍:

在具体赘述指针的相关知识之前,首先我们来看一张表:
 在c++中,每个变量都会占用一块内存,我们可以使用&符号来求出某个变量的地址(地址是一个十六进制的数),而指针是一个存储另一个变量地址的变量,同时给出指针的定义格式:

数据类型 *变量名1=&变量名2

指针p指向的变量可以通过*p就行修改或者访问,另外在c++中,我们使用空指针表示这个指针不指向任何变量,代码如下:

int *p=NULL;

指针指向哪一个变量也是可以修改的。

例如:

int a,b;
int *p=&a;
p=&b;

所以指针其实在c和c++中的使用是非常灵活和广泛的,另外,我们其实甚至可以把一个一维数组的名称看作一个无法被修改的指针,代码如下:

#include<iostream>
using namespace std;
int n,a[101];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	for(int i=1;i<=n;i++)
	cout<<*(a+i)<<' ';
	return 0;
}

这样写的目的其实就是输出了a数组中的所有元素(假设这时候存入的n为100),指针加一表示指向下一个变量,而减一代表指向上一个变量。

另外指针还可以指向结构体:

struct InfO{
    int x,y;	
}a;
Info*p=&a;

这样我们就可以通过(*p).x和(*p).y修改和访问对应的值,另外(*p).x可以使用p->x代替。

指针具有很多的作用,在有些问题里面它可以让问题变得更方便,就像利用指针指向一个很大的结构体的时候,就可以节省很大的时间还有空间,就好比上面的结构体。

在后续的学习中我会详细赘述指针的相关操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

残念亦需沉淀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值