(求我别晕)利用指向多维数组的指针给数组赋值

#include <iostream>
using namespace std;
int main(){
int a[10]={0},b[10][10]={0},c[10][10][10]={0};
//申明指向整型变量的指针,指向a[0]
int *pa=a;
//申明指向长度为的整型数组的指针,指向了b[0]
int (*pb)[10]=b;
//申明指向大小为*10的二维整型数组的指针,指向了c[0]
int (*pc)[10][10]=c;
*(pa+1)=10; //给a[1]赋值
// pa 是 a[0] 地址,一次认一个存储空间,加 1 后到 a[1] 的地址,加 * 为 a[1] 的值 
*(*(pb+1)+1)=10; //给b[1][1]赋值
// pb 是 b[0] 地址,一次认一排存储空间,加 1 后到 b[1] 的地址,加 * 为 b[1] 的值(相当于一个一维数组),再加 1 到 b[1][1] 地址处,加 * 为 b[1][1] 的值
*(*(*(pc+1)+1)+1)=10; //给c[1][1][1]赋值
cout<<a[1]<<" "<<b[1][1]<<" "<<c[1][1][1]<<endl;
//依据上面两个分析,俄罗斯套娃一样,一次看一面到看一排到看一个,就不难理解了
return 0;
}
输出:10 10 10

说明:数组的储存结构:一维相当于一排排元素,二维相当于每一排从上往下堆成矩形平面,三维相当于每一个矩形平面从前往后堆成长方体,访问的顺序为空间上从前往后,平面上从左往右,并且从上到下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值