zoukankan      html  css  js  c++  java
  • C与指针(结构体指针,函数指针,数组指针,指针数组)定义与使用

    类型  普通指针 指针数组(非指针类型) 数组指针 结构体指针 函数指针 二重指针
    定义方式 int *p; int *p[5];

    int (*p)[5];

    int a[3][5];

    struct{...int i;..}a, *p

    int (*p)(int,int);

    int add(int a,int b)

    int **p1;

    int *p2;

    int *p3[5];

    赋值方式 p=&a; —— p=a; p=&a p=add;

    p1=&p2;

    p1=&p3;

    解引用 *p=10; ——

    p[1][2]=5;

    *(*(p+i)+j)=5;

    p->i=10;

    *p(10,20)

    一般可以简写为p(10,20);

    *p1=(int*)0xffff;

     

    • 指针数组与数组指针

    指针数组 int *p[5]; p为数组,数组存储的为指针。

    数组指针 int (*p)[5]; p为指针,指向一个一维数组。

    • 以指针方式访问数组

    一维数组 int *p; int a[5];

        p=a;

        *(p+i)相当于a[i]

    二维数组 int a[2][5];

    对应指针 int (*p)[5];//p为指针,指向数组长度为5 的一维指针

        p=a;

        *(*(p+i)+j)相当于a[i][j];

    分析:内层的p为数组指针,所以解引用后 *(p+i)是p指向的值,为一个一维数组的首地址。再次解引用*(*(p+i)+j),才为这个数组内的值。

     

  • 相关阅读:
    CrackRTFwp 顺便讲讲如何在pe文件中看资源
    开启驱动生涯
    hgame week2 week3
    hgamefinal re peko-chain!
    docker化hbase并使用外部zookeeper
    docker化canal-adapter
    脚本
    ansible模块-user
    esxi克隆虚拟机
    confluence配置搭建
  • 原文地址:https://www.cnblogs.com/PengfeiSong/p/6220769.html
Copyright © 2011-2022 走看看