26 指针与引用之指针的定义与使用

C++完整教程

在上一篇教程中,我们探讨了数组与字符串之字符串的处理,了解了如何操作这些基本数据结构,这为我们更加复杂的数据结构打下了基础。在本篇中,我们将专注于 指针引用 之指针的定义与使用。掌握这些概念,对我们后续学习 指针与数组的关系 以及更复杂的动态内存管理至关重要。

什么是指针?

指针 是一个变量,其值为另一个变量的地址。通过指针,我们可以直接访问和操作这些变量。

指针的定义与使用

定义一个指针的基本语法如下:

1
类型 *指针名称;

例如,如果我们想要定义一个指向 int 类型的指针,可以这样写:

1
int *p;

我们可以通过赋值来初始化这个指针,通常使用 & 操作符来获取一个变量的地址:

1
2
int a = 10;
p = &a; // p现在指向a的地址

使用指针

我们可以通过指针访问被指向的变量。使用 * 操作符可以解引用指针,获取指针指向的值:

1
std::cout << "a的值是: " << *p << std::endl; // 输出10

指针的使用案例

下面是一个简单的示例,展示了如何使用指针进行变量的修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;

int main() {
int a = 10;
int *p = &a; // 定义指针并初始化
cout << "a的初始值: " << *p << endl; // 输出10

// 通过指针修改a的值
*p = 20;
cout << "修改后的a的值: " << a << endl; // 输出20

return 0;
}

什么是引用?

引用 是一个变量的别名,可以用来为现有的变量起一个新的名字。引用在使用上看起来就像常规变量,但实际上它们隐含了指针的特性。

引用的定义

定义引用的基本语法如下:

1
类型 &引用名称 = 变量名;

例如:

1
2
int a = 10;
int &r = a; // r是a的引用

使用引用

通过引用来访问原始变量的值是非常简单的。下面是一个示例:

1
std::cout << "a的值是: " << r << std::endl; // 输出10

与指针不同,引用在被初始化后不能再改变引用的对象。它始终支持原始变量的地址。

引用的使用案例

下面是一个简单的示例,展示如何通过引用修改变量的值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;

int main() {
int a = 10;
int &r = a; // 引用r指向a

cout << "a的初始值: " << r << endl; // 输出10

// 通过引用修改a的值
r = 30;
cout << "修改后的a的值: " << a << endl; // 输出30

return 0;
}

指针与引用之指针

指针的指针,即指向指针的指针,表示指向另一个指针的指针。它的定义与使用与一般指针类似,只需要在类型前加一个 *,以指明它是指向另一个指针的指针。

定义指针的指针

1
类型 **指针名称;

例如,一个指向 int 类型指针的指针可以这样定义:

1
int **pp;

指针的指针使用示例

以下示例展示了如何使用指向指针的指针:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;

int main() {
int a = 10;
int *p = &a; // p指向a
int **pp = &p; // pp指向p

cout << "a的值是: " << **pp << endl; // 输出10

// 通过指针的指针修改a的值
**pp = 40;
cout << "修改后的a的值: " << a << endl; // 输出40

return 0;
}

总结

在本篇教程中,我们仔细探讨了 指针引用 之指针的定义与使用。我们明确了指针和引用的区别,以及如何通过指针的指针访问和修改数据。这些内容为我们在下一篇教程中深入了解指针与数组的关系铺平了道路。

在学习的过程中,记得动手进行实践,编写代码,帮助你更好地理解这些概念。对于新手来说,这些基础知识是至关重要的,期待在下一篇教程中与你一同探索指针与数组之间的奥秘!

26 指针与引用之指针的定义与使用

https://zglg.work/c-plusplus-zero/26/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-24

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论