• C语言指针重点


    指针

    指针与一维数组

    万能公式

    • p[i] = *(p+i) = (i+p) = i[p]
      &p[i] == &(
      (p+i))== p+i

    指针与二维数组

    传向二维数组,本质上是传递二维数组的第一行的指针
    二维数组万能公式: ((p+i)+j)=a[i][j]

    • 对于一维数组而言,array + i 是array[i]的地址
    • 二维数组--->本质上就是n行个的一维数组--->每个有m列的一维数组
    • 行指针:a+i = &a[i] 即指向一行的指针
    • 列指针:a[i] = *(a+i) = &a[i][0] 即指向一列的指针
      上述行指针与列指针的数值相同,但意义摆在那了,并不同。

    下面举一个例子:

    int a[3][4];
    a+1 则是行指针
    *a则是列指针 参考一维数组与指针万能公式

    a[1][0] 就是一个y[0]
    a[1][1] 就是一个y[1] <---y+1
    这个y就是一个普通的数组了
    二维数组中
    a[1]+1 ==>跨一行 行指针
    *(a+1)+1 ==>跨一列 列指针
    二维数组做形参:a[][2] 前一个可省,后一个不可省

    行指针

    定义形式:数据类型(指针名)[一维数组维数]
    eg.int (
    p)[4];
    p是行指针, *p+j则是列指针

    int *p[4];
    数组中每个元素都是个指针;

    传递任意维数的数组本质上就是传递指向数组中的第一个元素的指针变量!


    __EOF__

  • 本文作者: Tanگگ
  • 本文链接: https://www.cnblogs.com/Tan-code/p/16887556.html
  • 关于博主: A Qingdao University student
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    神经网络优化篇:详解TensorFlow
    Mybatis接口代理方式实现Dao层
    ESP32(Espressif-IDE)添加外部(.c .h)文件 (error:undefined reference to)
    Python+AI智能编辑人脸
    马瑞利单点协议
    2022年互联网网络爬虫框架TOP10分析
    AI赋能Oracle DBA:以自然语言与Oracle数据库互动
    记一次 .NET某列控连锁系统 崩溃分析
    准备前工作
    低功耗工业RFID设备应用
  • 原文地址:https://www.cnblogs.com/Tan-code/p/16887556.html