指针数组和数组指针

数组指针

数组指针:本质上它就是一个指针,它是存在与二维以及多维数组中的行指针。
数组指针的定义:数据类型(*指针变量名)【元素的个数】;

定义方法:

int (*p2)[3];

指针数组

指针数组:本质上它就是一个数组,只不过它是由多个指针变量构成的。指针变量存放各自指向的地址。
指针数组的定义:数据类型 * 指针变量名【元素的个数】;

定义方法:

char *p1 = "abc";
char *p2[] = {a, b, c, d};

程序示例

    int b[3]= {0, 1, 2};
    int *p1 = b;  //相当于&b[0]
    printf("%p\n", p1);
    printf("%p\n", p1+1); //差值为4,一个int的长度
    printf("=======================\n");
    int (*p2)[3] = &b;  //数组指针,p是指向数组的指针    int * (p[3]) 括号可省去  p是指针数组,首先是个数组,数组内存的是指针
    printf("%p\n", p2);
    printf("%p\n", p2+1);  //差值为14,即3个int的长度(整个数组)

输出结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值