zoukankan      html  css  js  c++  java
  • [c语言]指针数组和数组指针

    指针数组和数组指针

    指针数组:array of pointers

    首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。操作和数组类似

    int *p1[10];`  // [] 比 * 优先级高,所以首先是数组,数组的元素是指针, 所以是指针数组
    
    • 元素表示:*(p+i)
    char *p[] = {"stately" , "plump" , "buck" , "mulligan"};
    printf("%d\n", sizeof(p));      // 指针数组里存放的是指针,所以结果是16
    
    for(int i = 0; i < 4; i++ )
    printf("%s\n", *(p+i));
    
    *(p+0) *(p+1) *(p+2) *(p+3)
    stately plump buck mulligan

    数组指针:a pointer to an array

    首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。

    int (*p2)[10]; // () 和 [] 优先级一样,但运算方向从左到右, *p2 构成一个指针,所以是**数组指针**
    
    • 元素表示:(*a)[i]

    二维数组的声明 int p2[3][10],作为函数参数的声明形式为

    void show_arr(int (*arr)[10], int rows)
    

    Good Good Study! Day Day Up!

  • 相关阅读:
    SSH
    List Map Set
    oracle中的in和exsit比较
    Hibernate n+1问题
    单例模式。
    把一段逗号分割的字符串转换成一个数组
    Hibernate总结
    myeclipse安装svn插件的多种方式
    LeetCode 14 Longest Common Prefix
    LeetCode 13 Roman to Integer
  • 原文地址:https://www.cnblogs.com/kdurant/p/4219926.html
Copyright © 2011-2022 走看看