C++的指针函数

在c++中,我们可以用指针函数来操控内存中的变量,比如完成变量交换的功能,让我们一起看看。

swap实例代码

void swap(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

这和平常的函数没什么两……样?

这个函数的参数前面加了一个&。

void swap(int *a, int *b) {
    int *temp = a;
    a = b;
    b = temp;
}

哈,这回加的是*号。

解释

指针

在c++中,我们定义一个变量就相当于在内存中划分了一块地方。

这个地方,是有名字的。

这个名字,就叫做地址。

那你想啊,如果能通过地址来完成什么for循环遍历啥的,那是不是就可以把整个计算机的数据都给调用出来。

所以,c++出现了指针的概念。

指针储存的是地址,我们可以使用一些指针操作符来获取数据,是一件很方便的事情。

我们可以用以下代码创建一个指针变量:

int *a;

这个*号是定义指针的时候必须要用的东西,大家记住就好,不用深究。

指针变量的类型取决于指向的变量是什么类型的,上面的例子就是指向一个int类型的变量。

指针操作符

指针定义好了,可是怎么获取地址呢?

使用&来获取变量的地址。

#include <iostream>
using namespace std;
int main() {
    int a = 0; //定义变量
    int *b = &a; //定义指针并且指向a的地址
    return 0;
}

好了,如果我们想获取a的值怎么办。

使用指针操作符*来获取数据。

#include <iostream>
using namespace std;
int main() {
    int a = 0; //定义变量
    int *b = &a; //定义指针并且指向a的地址
    cout << *b << endl; //使用*来获取数据
    cout << b << endl; //错误,这样会直接打印地址
    return 0;
}

现在知道指针怎么用了,让我们分析那两个函数吧!

函数解析

void swap(int &a, int &b) {
    int temp = a;
    a = b;
    b = temp;
}

现在就好理解了。

由于a和b的指针属性,直接交换它们的值可以对传入的参数值进行交换。

就像这样:

swap(a, b);

void swap(int *a, int *b) {
    int *temp = a;
    a = b;
    b = temp;
}

这个和上一个反过来,所以是一样的。

用法上应该传入地址

swap(*a, *b);

结束

byebye~

下一次我会讲模板类!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值