C++中用多维指针

例如*(*(count + I) + j),表示count[i][j]。*是解析引用运算符(间接运算符),表示的是指针的内容,那么上例子中括号内的表示什么意思?
括号内的*表示什么意思

二维数组可以理解为 一维数组的成员是一个数组。

如count[6][4]表示 6个一维数组 。count=count+0 是一个指针,指向第一个数组,即*count就是第一个数组第一个元素的地址,**count=count[0][0]。count+i就指向第i个数组,*(count+i)就是第i个数组的首地址。自己慢慢体会,先把一维数组彻底弄明白,再想这个问题!!!

追问

一维数组中*取得指针的内容啊,不是地址,那为什么到您这里二维就是第一个元素的地址了?

追答

假如有数组int a[3] ={0,1,2} 那么*a=a[0]=0 数组名指向数组的第一个元素 *a是int数据
count[6][4]中 count指向一个指针数组 *count是一个指针

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-27
其实如果去除掉i和j来看比较简单,count是一个指向指针的指针,*count将会返回它所指向的那个指针,*(*count)则返回它所指向的那个指针指向的值。i,j就是改变count和*count指向位置的偏移量。
第2个回答  2013-08-26
*(count + i)得到的是 count[i]的地址,*(count + i)+j得到的是 count[i][j]的地址.
*(*(count + i) + j)就可以 取到count[i][j]值了。追问

两个*的意思一样吗

追答

都是 取 出指针的 内容

追问

呃,那么括号里的*为什么取出来的是地址呢?

相似回答