需要显式的解引用:在函数内部,通过解引用指针(*ptr)来访问指针指向的值。 可以传递空指针(nullptr):可以通过传递空指针来表示不传递任何有效对象,这在某些场景中很有用。 指针操作的风险:使用指针需要小心,因为不正确的指针操作(如解引用空指针或悬空指针)可能会导致未定义行为。 适用场景 动态内存管理:当需要操作...
下面是对引用和指针的详细解释及其使用场景: 1. C++中的引用概念及其基本用法 引用是C++中的一种复合类型,它为另一个已存在的变量提供了一个别名。引用在定义时必须被初始化,且一旦绑定到一个变量后,就不能再改变为引用其他变量。引用的语法是在变量类型后加上&符号。 基本用法: cpp int a = 10; int ...
指针和引用的使用场景 引用的主要功能就是作为函数的参数和返回值,看一段代码: struct A { int a; }; void func(const A &a) { cout << a.a; } vector<int> vec(10); vec[3] = 3; 为什么通过vec[3] =3可以改变vector容器的值,因为[]操作符返回的就是引用,相当于为内部的变量起了一个...
1.指针可以不初始化,引用必须初始化 2.指针可以为空,引用不能为空 3指针可以更换目标,引用不能更换目标
[C++]引用形参和指针形参的使用场景 在设计函数时,应根据传入参数的值是否会被改变,来决定是使用引用形参还是指针形参。 当传入的参数会被改变时,使用指针形参。 当传入的参数不会被改变时,使用const修饰的引用形参。 不应存在纯引用形参。 以下示例来自LevelDB源码: ...
指针其实就是一个存放内存地址的整数,这个整数表示的是被指向的变量的地址。引用其实就是变量的别名,就是给变量重新起了一个名字,注意引用既然是个别名,那它一定要有本体,一个人叫王二小,我们也可以给它起个别名叫二蛋,我们提到二蛋和王二小其实都是同一个人。
02指针和引用的使用场景 引用的主要功能就是作为函数的参数和返回值,看一段代码: struct A { int a;};void func(const A &a) { cout << a.a;} vector<int> vec(10);vec[3] = 3; 1. 2. 为什么通过vec[3] =3可以改变vector容器的值,因为[]操作符返回的就是引用,相当于为内部的变量起了一个...
再举个例子,有一个人叫特朗普,为他起个引用别名叫历史上最傻吊的总统,这个引用一定会从一而终,即无论什么时候,历史上最傻吊的总统一定是特朗普。而美国总统可以当作个指针,一段时间可以是奥巴马,过一段时间可以是特朗普,再过一段时间可能是nullptr。 指针和引用的使用场景 引用的主要功能就是作为函数的参数和...
02指针和引用的使用场景 引用的主要功能就是作为函数的参数和返回值,看一段代码: 为什么通过vec[3] =3可以改变vector容器的值,因为[]操作符返回的就是引用,相当于为内部的变量起了一个别名,这里还可以让[]操作符返回一个指针,即*vec[3]=3,这是不是有点丑,而且不符合语法需求。
02.指针和引用的使用场景 引用的主要功能就是作为函数的参数和返回值,看一段代码: structA{inta; };voidfunc(constA &a){ cout << a.a; }vector<int>vec(10); vec[3] =3; 为什么通过vec[3] =3可以改变vector容器的值,因为[]操作符返回的就是引用,相当于为内部的变量起了一个别名,这里还可以让[...