zoukankan      html  css  js  c++  java
  • 【C语言】学习笔记7——指针与多维数组

     1. 声明一个指向多维数组的指针

    int (* pz) [2];   //pz指向一个内涵两个int类型元素的数组
    
    int * pax[2];  //pax 是一个内含两个指针元素的数组,每个元素都指向int的指针

    2。 看个例子  

    //指针与多维数组 
    #include <stdio.h>
    
    int main()
    {
        int zippo[4][2] = { {2, 4}, {6, 8}, {1, 3}, {5, 7} };
        
        int (*pz)[2]; // pz指向一个内含两个 int类型值的数组 
        
        pz = zippo;  // 将zippo的地址赋给指针 pz
        
        printf("       pz = %p, pz + 1= %p
    ", pz, pz + 1);
        
        printf(" pz[0] = %p, pz[0] + 1 = %p
    ", pz[0], pz[0] +1);
        
        printf("     *pz = %p, *pz + 1 = %p
    ", *pz, *pz +1);
        
        printf("       pz[0][0] = %d
    ", pz[0][0]);
        
        printf("         *pz[0] = %d
    ", *pz[0]);
        
        printf("       pz[2][1] = %d
    ", pz[2][1]);
        
        printf(" *(*(pz + 2) + 1) = %d
    ", *(*(pz + 2)+ 1));
         
        return 0;
        
    }
    
    /*
    Output:
           pz = 000000000062FE20, pz + 1= 000000000062FE28
     pz[0] = 000000000062FE20, pz[0] + 1 = 000000000062FE24
         *pz = 000000000062FE20, *pz + 1 = 000000000062FE24
           pz[0][0] = 2
             *pz[0] = 2
           pz[2][1] = 3
     *(*(pz + 2) + 1) = 3
    ----------------------- 
    */

    解引用的用法大概都在这了。。。很绕,当你声明一个指针数组时,解引用了它还是一个指针, 再解引用才是得到值

    所以使用数组的值,最好用下标,而不是指针表示法

  • 相关阅读:
    插入数据Oracle异常ORA-01502: 索引或这类索引的分区处于不可用状态
    关于分布式系统的数据一致性问题
    C#网络编程系列文章之Socket实现异步TCP服务器
    大型网站架构与分布式架构
    序列化表单为json
    学习wcf
    C# 知识梳理
    Java前端控制器模式
    Java策略模式
    Java责任链模式
  • 原文地址:https://www.cnblogs.com/yeyeck/p/9520141.html
Copyright © 2011-2022 走看看