怎么用指针指向二维数组,又怎么利用指针引用二维数组中的元素

如题所述

如果只是指向首行首列(第0行0列)的元素,直接用数组名赋值给指针变量即可(与一维数组相同,数组名就是首地址)
二维数组是以行为单位的,每一行都是一个一维数组,因此,存放顺序是:第0行0列-第0行最后列-第1行0列-第1行最后列-第2行0列 这样类推,在指针运算的时候,按这个规律做推算。
在行做运算时,只需要数组名+偏移位置就可以指定对应行0列元素
如果只是指向某行的首列(0列)元素,可用数组名+行号下标赋值给指针变量(不用写列号下标),如p=m[2],
如果要指向具体的该行该列,可使用&符号指定(比较直观的方式),如p=&m[2][1],也可使用数组名+行下标+偏移位置来指定,如p=m[2]+1就是指向第2行(物理位置是第三行)第1列(物理位置是第2列)

用指针引用数组元素,仍然可以使用该指针变量的*运算符(与一般的指针变量取对应值的方式完全相同)
另外,前面提到的数组名,以及数组名+行号下标的方式也可以用来取第0行0列或指定行0列的元素,其它列(或行)可以使用偏移运算的方式取元素值,不过,必须加上*运算符,否则取到的将是内存地址本身而不是元素。举例来说,*(m[2]+1)是用于取第2行1列(物理位置是第三行第二列)的值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-29
电饭锅电饭锅梵蒂冈
相似回答