• 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 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    PC-3000 Mobile Pro: 智能手机及平板设备数据提取工具
    elementui日期时间选择框自定义组件
    基于STM32 CubeMX利用RTC实现带温湿度模块的万年历
    【黄啊码】MySQL入门—9、什么?都2022了,还不知道什么是事务?
    华清远见11.2
    C#语言async, await 简单介绍与实例(入门级)
    Android 8.0注册广播无效
    MySQL高级篇
    Java配置线程池
    自动控制原理9.2---线性系统的可控性与可观测性(上)
  • 原文地址:https://www.cnblogs.com/Tan-code/p/16887556.html