首页 新闻 会员 周边

关于c语言中多维指针数组的问题

0
[已解决问题] 解决于 2015-07-18 19:03

一、

char *A[3][4];

这里面的A表示什么意思?

A[0]表示什么意思?

A[0][0]表示什么意思?

二、

char (*B)[3][4];

这里面的B表示什么意思?

B[0]表示什么意思?

B[0][0]表示什么意思?

三、

我需要一堆指向二维数组的指针,应该怎么声明?

ithan的主页 ithan | 菜鸟二级 | 园豆:234
提问于:2015-07-17 14:09
< >
分享
最佳答案
0

在理解1,2,3之前,你有必要先了解下数组指针和指针数组这两个概念

  • 数组指针,就是表示指向数组首地址的指针,也就是跟普通的指针一样
  • 指针数组表示数组中的元素指针,也就是数组元素是指针的数组,本质还是数组

数组指针的一般写法是: int (*ptr)[number];

指针数组的一般写法是: int *ptr[number] 

ps: 对于数组指针和指针数组的理解也可以从符号的结合优先级上来理解,这里就不做阐述了,都是基本的概念,看看符号优先级表就知道了

具备了以上的知识,然后回来看你的三个问题,其实就开朗很多了

1. char *A[3][4] 等同于  char A[3][4][number] 

2.char (*B)[3][4]; 等同于 char B[number][3][4];

3.这个问题一般来说你直接申明个指针然后指向一个二维数组就可以了

 例如: int **ptr; 

        int *ptr[number]

扥等

ps: 1,2这种写法真是很蛋疼,以上是个人理解,可能也是存在错误的地方,仅仅供参考使用

奖励园豆:5
visonme | 小虾三级 |园豆:1674 | 2015-07-17 17:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册