zoukankan      html  css  js  c++  java
  • 指针数组 与 数组指针 的理解

    起因: 使用void * 指针传参, 改了半天没出bug。

    指针数组array of pointers,即用于存储指针的数组,也就是数组元素都是指针

    数组指针a pointer to an array,即指向数组的指针

    大一看这名称可以理解, 时间久了就忘记了, 咱们可以这样理解。

    指针数组 是 数组 —— 数组里存的是指针。 定义: char *p[2]; 

    数组指针指针 —— 指针指向的是数组。 定义: char (*p)[2]; 


    指针数组:

    /**** 指针数组 ****/
    
    //数组都是指针, 要分配内存, 在赋值 。 
    char *p[2]; 
    p[0] = (char*)malloc(10*sizeof(char)); 
    p[1] = (char*)malloc(10*sizeof(char)); 
    
    strcpy(p[0], "in.txt"); 
    strcpy(p[1], "111"); 
    
    fprintf(stderr, "%s %s
    ", p[0], p[1]); 
    

      

    数组指针:

    /**** 数组指针 ****/
    #define NMAX 10
    
    char outFileName[2][NMAX]; 
    strcpy(outFileName[0], "out.txt"); 
    strcpy(outFileName[1], "222"); 
    
    //argv 就是数组指针。
    char (*p)[NMAX]; 
    p = outFileName; 
    fprintf(stderr, "%s %s
    ", p[0], p[1]); 
    //结果是: out.txt 222
    

      

    以上代码仅供参考,我是复制上去, 然后手动修改了一些,可能有些bug存在, 有请大神告知。

  • 相关阅读:
    STL Allocator
    Several NeedToKnow(assert/stdin/stdout/CString/Standard C++ Library)
    VS Project Property Sheet
    进度总结(3)
    进度总结(2)
    进度总结(4)
    进度总结(7)
    进度总结(1)
    进度总结(5)
    进度总结(6)
  • 原文地址:https://www.cnblogs.com/jluzhsai/p/3548931.html
Copyright © 2011-2022 走看看