引用 和 指针 的区别

初学C++的人,往往对引用型和指针型变量的不同点不容易理解。

首先要明白一点,C的函数参数传递都是值拷贝,所谓的地址传递也是值拷贝,之所以能通过地址传递修改外部参数,是因为C 提供了对地址的解引用操作(*)

C 中的指针是一种基本变量类型,所以支持一些基本的运算支持,比如解引用、自增、自减、比较等等
C++ 中的引用类型,实际上并不是基本的变量类型,只是变量的一种别名形式定义,所以不具备的运算支持
下面的代码会很好的演式其中的区别

代码如下:

#include <stdio.h>

void Increment_quote(char  * &s) {
    ++s;
}

void Increment_ptr(char *s) {
    ++s;
}

int main() {
    char s[] = "Hello world";
    char *p = s;
    char *q = s;
    Increment_quote(p);
    Increment_ptr(q);
    puts(p);
    puts(q);
    return 0;
}

运行结果如下:

ello world
Hello world
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值