c++ 基础(指针)

作者: zidea | 来源:发表于2019-04-06 11:36 被阅读73次
Cplusplus-tutorial-in-hindi.jpg

指针是我们学习cpp的难攻克堡垒。


重要的事情说三遍

  • 指针就是持有内存地址的变量
int a = 5

我们知道不同类型占据内存大小也不同,在这里先不管这个,我们知道 a 就是内存地址, a = 5,就是把 5 保存在内存地址为 a (可以理解为内存地址别名)的内存中。

| 内存地址 | 值 |
| :----------- | - :|
| 100 | |
| 101 | |
| 102 "a" | 5 |
| 103 | |
| 104 | |
| 105 | |

a = RAM[102]

这是就是 direct addrssing (直接通过地址获取变量值)

然后我们定义一个变量为 b 类型为指针,用于保存内存地址,内存地址可简单理解为门牌号。

pointer b

| 内存地址 | 值 |
| :----------- | - :|
| 100 "c" | |
| 101 | |
| 102 "a" | 5 |
| 103 | |
| 104 | |
| 105 "b" | 102 |

我们可以给 b 赋上一个内存地址的值

pointer b = 100

在 cpp 中我们可以通过 & 获取获取指针的值(也就是内存地址的实际值)。

pointer b = &a

那么就是相对于把 a 的持有的内存地址值(102)赋值给了 b 这个指针类型

b 有了 5 的内存地址,那么我们理论上是可通过 b 找到 5 的,这种方式叫做间接寻址(indirect addressing)

在定义一个变量 c ,这里又有新的符号登场了 * ,*是操作符将指针类型变量保存的内存地址所指向的内存中保存的值取出来。 b 保存 102 ,102 地址内存中保存值为 5 。我想大家应该理解了吧

int c = *b

| 内存地址 | 值 |
| :----------- | - :|
| 100 "c" | 5 |
| 101 | |
| 102 "a" | 5 |
| 103 | |
| 104 | |
| 105 "b" | 102 |

这里关键了解一下 & 和 * 这两个操作符,然后理解指针就是持有内存地址变量。
但是在 cpp 中没有指针类型变量 pointer 是我在这里为讲解虚构出来的,在 cpp 定义指针类型变量是这样做的

int* b = &a

或者

int *b = &a

这么设计有点过分,无形中给 develper 代码麻烦,这里用 * 那里也用* ,我们可以通过 = 将 * 区分为表示 pointer 类型和取值操作符。

Java-Vs-Kotlin-–-Which-Should-You-Choose-For-Android-Development.png

相关文章

  • C++ 、java 和 C# 的区别

    一、基础类型 c++: ** java:** C#: 二、指针 1.java 是没有指针这个概念,c++ 和 c#...

  • C++ 笔记 - 基础语法篇

    C++ 笔记 - 基础语法篇
    this 指针 在 C++ 中,每一个对象都能通过...

  • c++ 基础(指针)

    指针是我们学习cpp的难攻克堡垒。 重要的事情说三遍 指针就是持有内存地址的变量 我们知道不同类型占据内存大小也不...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++基本概念复习_2018-06-25

    C++基础 (1)C和C++的区别 C++分为: C部分(区块、语句、预处理器、内置数据类型、数组、指针等); 面...

  • 绿盟面试准备

    C++基础知识 指针和引用的区别: 指针是一个变量 ,引用是别名.指针可以初始化为空, 引用必须初始化为具体的值....

  • C++智能指针

    引用计数技术及智能指针的简单实现 基础对象类 辅助类 智能指针类 使用测试 参考: C++ 引用计数技术及智能指针...

  • c++ 基础(函数指针)

    学习 c++ 的道路是曲折,学多内容让人 confusing,我想原因很多,首先 c++ 是一门接近机器底层的语言...

  • 详解C++指针和引用

    C++是在C语言的基础上发展来的。C++除了有C语言的指针外,还增加一个新的概念——引用,初学者容易把引用和指针混...

  • C++ 指针常量、常量指针和常指针常量

    参考:C++ 指针常量、常量指针和常指针常量

网友评论

    本文标题:c++ 基础(指针)

    本文链接:https://www.haomeiwen.com/subject/aqhriqtx.html