二维数据和一维指针数组

1.二维数组名a的含义:

定义一个二维数组a :

  int a[3][4] = {{1,3,5,7}, {9,11,13,15}, {17,19,21,23}};

  a数组包含3个行元素,a[0],a[1],a[2]。

       每个行元素a[i] 又是一个一维数组,它包含4个元素。

    a == &a[0]

    a + i == &a[i]

    a[0] == &a[0][0]

    a[i] == &a[ i ][0]

2.二维数组地址的关系:(地址由行至列以元素类型递增)

3.二维数组与一维指针数组等价

数组名即行数组的首地址。

char* st[] = {"SUN", "MOON", "STAR", "X"};
printf("(%s, %c)", *(st + 1) + 1, *(*(st + 2) + 2) + 2);  //(OON, C)

st + i 指的是 元素st[ i ]的地址&st[ i ],而元素st[ i ],即*(st + i)是一个指向字符串的指针,即该字符串的首地址.

即st + i 指的是第 i 个字符串的地址的地址。

参数资料

转载于:https://www.cnblogs.com/Lunais/p/9807008.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值