「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」
前言
前篇文章尝试用学到的一些C++基本知识做了一个基本的排序算法,接下来继续学习C++高级一点的知识。
想先讲一下个人对于指针的了解程度,我觉得自己对计算机底层的了解不够,学习复杂的东西非常困难缓慢。指针这个概念的确非常的抽象,对于没有计算机基础知识的人更是很难理解。要深刻理解指针必须要了解计算机底层知识,但是现在学习C++不可能再去深入研究计算机原理了,只能说明一下表面含义顺便粗略讲下基本知识
指针原理
在Golang系列文章页粗略讲过 指针 是一个变量,指针的值为一个变量的地址,这个地址就是物理内存的地址。物理内存就是指计算机中的内存条,在学习指针的时候可以忽略操作系统弄出来的虚拟地址,只讨论这个表面含义的物理地址。
- 指针就是一个内存地址的变量。
指针定义
C++中要使用指针必须先定义它,指针变量的数据类型可以是任何类型,例如常见的整数变量指针和字符串变量指针定义如下:
int *num; //整数类型的指针
char *word; // 字符型的指针
指针使用
*num指针表示num这个变量存放的内存地址,要使用这个指针要有三个流程,分别是定义指针变量、把变量地址赋值给指针、访问指针变量中可用地址的值
#include <iostream>
using namespace std;
int main() {
int* p; // 1.指针变量的声明
int num = 1; // 2.实际变量的声明
p = # // 3.访问指针变量中可用地址的值,打印出来
cout << p << endl;
cout << *p << endl;
}
p 就是存放的地址,内容是内存地址
*p 内容是内存地址存放的值
总结
对于C++指针概念有了基本的了解,下面来继续深入了解指针的具体逻辑,和其他使用方法