欧卡2中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

需要三步,才能开始

只需两步,慢速开始

欧卡2入门方向盘选莱仕达V9莱仕达折叠便携游戏方向盘支架欢迎地图Mod入驻
查看: 5333|回复: 0
收起左侧

[编程] 指向数组的指针

[复制链接]
知行 发表于 2013-10-15 02:30 | 显示全部楼层 |阅读模式
定义以下变量:

char a[4][3][2] = {{{'a', 'b'}, {'c', 'd'}, {'e', 'f'}},
                   {{'g', 'h'}, {'i', 'j'}, {'k', 'l'}},
                   {{'m', 'n'}, {'o', 'p'}, {'q', 'r'}},
                   {{'s', 't'}, {'u', 'v'}, {'w', 'x'}}};

char (*pa)[2] = &a[1][0];
char (*ppa)[3][2] = &a[1];
要想通过pa或ppa访问数组a中的'r'元素,分别应该怎么写?
/* 
 * File:   main.cpp
 * Author: annhe
 *
 * Created on 201年月日, :
 */

#include <cstdlib>
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
        char a[4][3][2] = {{{'a', 'b'}, {'c', 'd'}, {'e', 'f'}},
                   {{'g', 'h'}, {'i', 'j'}, {'k', 'l'}},
                   {{'m', 'n'}, {'o', 'p'}, {'q', 'r'}},
                   {{'s', 't'}, {'u', 'v'}, {'w', 'x'}}};

        char (*pa)[2] = &a[1][0];
        char (*ppa)[3][2] = &a[1];
        
        //pa为一个指向具有两个元素的数组的指针,赋值&a[1][0]后指向{'g','h'},所以pa[5]=={'q','r'},pa[5] [1]=='r';
        cout<<"pa[5][1] :"<<pa[5][1]<<endl;                
        //ppa指向{{'g','h'},{'i','j'},{'k','l'}},ppa[1]=={{'m','n'}, {'o','p'},{'q','r'}},ppa[1][2]=={'q','r'},ppa[1][2][1]=='r';
        cout<<"ppa[1][2][1] :"<<ppa[1][2][1]<<endl;        
        cout<<"*(*(pa+5)+1) :"<<*(*(pa+5)+1)<<endl;
        cout<<"*(*(*(ppa+1)+2)+1) :"<<*(*(*(ppa+1)+2)+1)<<endl;
        
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们|手机版|欧卡2中国 ( 湘ICP备11020288号-1 )

GMT+8, 2024-12-29 01:33 , Processed in 0.052729 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表