zoukankan      html  css  js  c++  java
  • 34-指针与二维数组

    本小节知识点:

    1、数组名访问数组元素

    2、普通指针访问二位数组

    3、指向二维数组的指针

    4、指针数组和二维数组指针变量的区别

    =========================================================================

    1、数组名访问数组元素

    多维数组的地址

    int a[3][4]={{1,3,5,7}, {9,11,13,15},{17,19,21,23}}; 

    a代表第0行首地址

    a+1代表第1行首地址

    a+2代表第2行首地址

    a+i代表行号为i的行首地址(按行变化) 

    a[0]代表a[0][0]的地址

    a[0]+1代表a[0][1]的地址

    a[0]+2代表a[0][2]的地址

    a[0]+3代表a[0][3]的地址 

    2、普通指针访问二维数组 

    3、指向二维数组的指针 

    二维数组指针变量说明的

    一般形式为:

    类型说明符 (*指针变量名)[长度]

    其中:

    1> “类型说明符”为所指数组的数据类型。

    2> “*”表示其后的变量是指针类型。 “

    3>  长度”表示二维数组 分解为多个一维数组时, 一维数组的长度,也就是二维数组的列数

       如要将二维数组赋给一指针,应这样赋值:
    
    int a[3][4];
    int (*p)[4];
    

    p=a; p++;

    // 该语句是定义一个数组指针, 指向含4个元素的一维数组。 //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]

    // 该语句执行过后, 也就是p=p+1; p跨过行a[0][]指向了行a[1][]  所以数组指针也称指向一维数组的指针, 亦称行指针。 

    4、指针数组和二维数组指针变量的区别

    应该注意指针数组和二维数组指针变量的区别。

    这两者虽然都可用来表示二维数组,但是其表示方法和意义是不同的。

    二维数组指针变量是单个的变量,其一般形式中"(*指针变量名)"两边的括号不可少。

    而指针数组类型表示的 是多个指针(一组有序指针)在一般形式中"*指针数组名"两边不能有括号。

    例如:

    int (*p)[3]; 表示一个指向二维数组的指针变量。该二维数组的列数为3或分解为一维数组的长度为3。

    int *p[3] 表示p是一个指针数组,有三个下标变量p[0],p[1],p[2]均为指针变量。 

  • 相关阅读:
    Android随笔使用ViewPager实现简单地图片的左右滑动切换
    简单地Android中图片的三级缓存机制
    Java中怎么遍历map中value值 (转载)
    创建可执行的jar包
    写出优秀的java代码(转载)
    [JS脚本]ajax status 错误定义
    jsonlib 之jsonConfig详细使用(转载写的不错)
    Driver not found Error when sonar server is just not running
    使用Maven生成manifest
    ECMAScript 面向对象技术
  • 原文地址:https://www.cnblogs.com/xdl745464047/p/4023755.html
Copyright © 2011-2022 走看看