美文网首页
指针专题

指针专题

作者: 四月的记忆 | 来源:发表于2017-05-01 02:47 被阅读0次

指针三大铁律

1 铁律一:指针也是一种数据类型

指针的数据类型是它所指向的内存空间的数据类型。

2 铁律二:指针变量和它所指向的内存空间是两个不同的概念

步长根据它所指向的内存空间来定。

3 铁律三:理解指针必须和内存四区概念相结合

主调函数 被调函数

  • 主调函数可把堆区、栈区、全局区数据内存地址传给被调用函数
  • 被调用函数只能返回堆区、全局数据

内存分配方式

  • 指针做函数参数,是有输入输出特性的

指针存在的意义

==间接赋值成立的三个条件==

  1. 定义了一个实参变量,一个形参变量
  2. 建立关联(实参取地址传给形参)
  3. *p 形参去间接的修改实参的值

==间接赋值的应用场景有两个(代码实现层面)==

  1. *p1++ = *p2++
  2. 指针作函数参数,通过 *p 形参间接的修改实参的值,这才是指针存在的最大意义

这是C语言特有的现象,而这才是指针的精华

来看一个简单的例子

//指针做函数参数,通过形参把函数外的实际参数修改了,这才是指针的意义
int getNum(int *p)
{
        if(p == NULL)
                return -1;
    *p = 40;
}

==指针做函数参数==

函数调用过程中

  • 用1级指针(通常是形参)去修改0级指针(通常是实参)的值
  • 用2级指针(通常是形参)去修改1级指针(通常是实参)的值
  • 用3级指针(通常是形参)去修改2级指针(通常是实参)的值
  • ......
  • 用8级指针(通常是形参)去修改7级指针(通常是实参)的值
  • ......
  • 用n级指针(通常是形参)去修改n-1级指针(通常是实参)的值
  • ......

函数调用时,形参传给实参,用实参取地址,传给形参,在被调用函数里面用*p,
来改变实参,把运算结果传出来。
指针作为函数参数的精髓。

*p间接赋值是指针存在的最大意义(现实意义)

==总结,间接赋值的应用场景的三种形式(基于间接赋值成立的三个条件):==

  • 123 写在一个函数里面,那么成了第一个应用场景
  • 12 3 //间接赋值是指针存在的最大意义
  • 1 23 //抛砖

二级指针输出模型建立

相关文章

  • 指针专题

    指针三大铁律 指针的数据类型是它所指向的内存空间的数据类型。 步长根据它所指向的内存空间来定。 主调函数 被调函数...

  • C语言专题-指针

    指针重要性: 表示一些复杂的数据结构快速的传递数据使函数返回一个以上的值能直接访问硬件能方便的处理字符串是理解面向...

  • LeetCode 专题 :双指针

    LeetCode 第 167 题:两数之和 II - 输入有序数组 传送门:167. 两数之和 II - 输入有序...

  • C语言指针专题——如何理解指针

    指针,传说中是C语言中的一个难点,且是难点中的难点。本文在教材的基础上,再详细地谈谈“指针”这个东东,力争让大家能...

  • C语言指针专题——为何要学习指针

    欢迎转发本文! 之前的文章与各位谈论了指针是什么,以及指针为何这那么难学。不少知友留言说看了我的文章对指针了解了不...

  • C语言指针专题——指针怎么就很灵活?

    本篇再来谈谈C语言中,为何有人会说指针很灵活?指针是精华?我来说说我对灵活性的理解。 先举个例子。windows上...

  • C语言指针专题——序

    看到好多的C语言初学者学到指针时,都觉得指针怎么那么难啊!我也想起了我当时学习指针时遇到的困难,确实很难!到底是教...

  • C语言指针专题——使用指针要注意这些

    C语言中,指针的概念有点难懂,使用起来稍微不注意,也会遇到各种问题。在本文中,我列举出了几个使用指针不当的方式,希...

  • C语言指针专题——指针难学的4点原因

    前一篇跟大家聊了聊指针的概念,可是就算了解了指针是什么,为什么依然感觉难学?我试着从几个点切入,聊聊指针难学之处。...

  • 怎么建立一个专题?

    什么是专题? 所谓专题,是指针对某个特定对象而特别收集制作而成的一种集中作品,这个对象可以是具体的某个人物或者某个...

网友评论

      本文标题:指针专题

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