开发者学堂课程【C语言学习教程:二维数组的指针访问二维数组】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/387/detail/4948
二维数组的指针访问二维数组
目录:
一、用指向二维数组的指针访问
二、相关的例子
一、用指向二维数组的指针访问
例如:
int a[3][4]={1,2,,3,4,5,6,7,8,9,10,11,12};
int (*p)[3][4]=&a;
p[0][0][2]=100; //等价于[0][2]=100;
p[0][1][2]=200; //等价于[1][2]=200;
二、相关的例子
Main.C
二维数组的指针
Created by dancer on 16/8/1.
Copyright © 2016年 NS0bject. All rights reserved.
include <stdio.h>
int main(int argc, const char * argv[]) {
int tArr[5] = {1,2,3,4,5};
tArr+1;
int array [2][3] = {{1,2,3},{4,5,6}};
int (*p)[2][3] = NULL;
p = &array;
/*
array[0][0]
*p == array
(*p)[0][0]
(*p)[0][1]
p[0] == *p
p[0][0][0] == array[0][0]
p[0][0][1] == array[0][1]
p[0] == array
p[0][0] == array[0] == *(p[0]+0) == arr1
p[0][1] == array[1] == *(p[0]+1) == arr2
p + 1 跨过 6*4个字节
p[0] + 1 跨过 3*4个字节
*(p[0]+0)+1
p[0][0] + 1 跨过 4字节
array[0] + 1 二维数组第一个元素值+1
*/
printf(“p = %p\n”,p);
printf(“p+1 = %p\n”,p+1);
printf(“p[0] = %p\n”,p[0]);
printf(“p[0]+1 = %p\n”,p[0]+1);
printf(“p[0][0] = %p\n”,p[0][0]);
printf(“p[0][0]+1 = %p\n”,p[0][0]+1);
printf(“p[0][0][0] = %p\n”,p[0][0][0]);
// insert code here...
printf(“Hello,World!\n”);
return 0;
}