zoukankan      html  css  js  c++  java
  • 指针数组与数组指针的区别

    说明:以指针数组int *p[3]和数组指针int (*p)[3]为例说明。

    一、概念性区别

    1、指针数组与数组指针的区别

    已知:“[]”比“*”的运算级别高

    分析:

         (1)int *p[3]是一个指针“数组”,有三个元素

         (2)int (*p)[3]是一个指向列元素有三个的二维数组的“指针”

    2、数组指针与指向指针的指针的区别

        以int (*p)[4]与int * *p的区别为例说明。

    (1)前者p+1代表地址增加16

    (2)后者p+1代表地址增加4

    二、实验环节

    1、int *p[3]实验

    #include <iostream>  
    using namespace std;  
    int main(int argc, char* argv[])  
    {  
        int* p[3];  
        int a[3] = {1, 2, 3};  
        int b[4] = {4, 5, 6};  
        int c[4] = {7, 8, 9};  
        int i,j;
    
        p[0] = a;  
        p[1] = b;
        p[2] = c;
        for(i = 0;i < 3;i++){  
            for(j =0;j < 3;j++){
            cout << p[i][j];
            }
        cout <<endl;
        }
        return 0;  
    }

    实验结果

    2、int (*p)[3]实验

    #include <iostream>  
    using namespace std;  
    
    int main(int argc, char* argv[])  
    {  
        int (*p)[3];  
        int a[2][3] = {{1, 2, 3},{4, 5, 6},{7,8,9}};  
        int i,j;
    
        p = a;      
        for(i = 0;i < 3;i++){  
            for(j =0;j < 3;j++){
            cout << p[i][j];
            }
        cout <<endl;
        }
        return 0;  
    }

    实验结果

  • 相关阅读:
    stack 栈
    链表
    2018.09.08 DL24 Day1 总结
    10.07 WZZX Day2总结
    10.06 WZZX Day1总结
    Joseph问题 (线段树)
    [POI2006]TET-Tetris 3D
    10.05FZSZ Day2模拟总结
    Tarjan求LCA
    数据结构
  • 原文地址:https://www.cnblogs.com/amanlikethis/p/3466854.html
Copyright © 2011-2022 走看看