数组指针(自己理解与总结)

【欢迎指出错误】wKiom1ZkQKDjc8r6AAFMtgJ8kzE614.png

wKioL1ZkQSyhOGzkAANlsr0FS2c954.png

wKioL1ZkQT2hsZQ4AABbXk97KYM713.png

===================20160904update===============================

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
/*****************  数组指针 相关总结   *********************/
int main()
{
    int n[][3] = {10,20,30,40,50,60};
    int (*p)[3] = n;    // p 是 int[3]*   一维数组int[3]*是 数组地址   p[0]<->*(p + 0)<->*p 是int[3]为一维数组数组首元素地址     注意 n + 1  也是int[3]*
                   // 但是n是 int[2][3] 二维数组首元素地址 n+1    越过int[3]一维数组
                   // &n是int[2][3]*    二维数组地址      &n + 1 越过整个二维数组
    // n+0  n+1 ... 后是int[3]*
    // *(n + 1) <->  n[1]    *(n + 0)<->n[0]  为int[3] 一维数组首元素地址             (n+0为int[3]*  一维数组地址 阶引用---->*(n+0)为int [3] 一维数组首元素地址)
    //  *(*(p ) + 1)  、*(p[0] + 1)、 (*p)[1]是一样的
    cout<<p[0][1]<< " " <<*(*(p) + 1)<< " "<<*(p[0] + 1)<< " " <<(*p)[1]<<endl; // 20   20  20
    cout<<n[0][1]<< " " <<*(*(n) + 1)<< " "<<*(n[0] + 1)<< " " <<(*n)[1]<<endl; // 20  20  20
    p = n;
    //     10           20                   30
    cout<<p[0][0]<< "  " <<*(p[0]+ 1)<< "   "<<(*p)[2]<<endl;
    return 0;
}

wKiom1fMOf_RjWMhAAA56Efac38298.png

wKioL1fMOf_wjiYFAAACYxZqKH8460.png


本文出自 “城市猎人” 博客,请务必保留此出处http://alick.blog.51cto.com/10786574/1720139

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值