zoukankan      html  css  js  c++  java
  • 二维数组的行列指针

    行指针原理

        我们现在想定义一个指针,使得这个指针有这样的特性—— 指针 p指向arr[0], 指针 p+1 指向arr[1] ,指针 p+2指向arr[2], 也就是指针每移动一个单位的地址就指向下一个一维数组,那么这个指针必须满足下面二个条件:1、必须是整型 2、必须每移动一个单位的地址时实际上移动一个一维数组的长度即3个整型量。

               int data[3][4];

    行指针:int (*p)[4];

            初始化:p = a;

                       p = &a[0];

            引用:   p[i][j]

    列指针:int *p;

            初始化:p = a[0];

                       p = *a;

                       p = &a[0][0];

            引用:  p[i*4+j]


    示例代码

     1 #include <stdio.h>
     2  
     3 void fun(int *p, int row, int col);
     4 void fun1(int (*p)[5], int row);
     5  
     6 int main()
     7 {
     8     int a[3][5];
     9  
    10     for (int i=0; i<3; i++)
    11     {
    12         for (int j=0; j<5; j++)
    13         {
    14             a[i][j] = i*5+j;
    15         }
    16     }
    17  
    18     fun(a[0], 3, 5);
    19  
    20     fun1(a, 3);
    21  
    22     return 0;
    23 }
    24  
    25 void fun(int *p, int row, int col)
    26 {
    27     for (int i=0; i<row; i++)
    28     {
    29         for (int j=0; j<col; j++)
    30         {
    31             printf("%d", p[i*col+j]);
    32         }
    33         printf("
    ");
    34     }
    35  
    36     getchar();
    37 }
    38  
    39 void fun1(int (*p)[5], int row)
    40 {
    41     for (int i=0; i<row; i++)
    42     {
    43         for (int j=0; j<5; j++)
    44         {
    45             printf("%d", p[i][j]);
    46         }
    47         printf("
    ");
    48     }
    49  
    50     getchar();
    51 }
    View Code
  • 相关阅读:
    TCP重传
    GIT常用命令参考图
    nodepad++ 快捷键加常用操作
    Django学习之manage.py使用
    Python遍历目录
    Pycharm 2017 12月最新激活码
    Python 基础之列表去重的几种玩法
    ddos cc攻击简单介绍(转)
    linux升级python版本至3
    linux解压xxx.tar.xz文件
  • 原文地址:https://www.cnblogs.com/TaoyzDream/p/3675625.html
Copyright © 2011-2022 走看看