假设我们有一个多维数组。How&multi [3] [0]和*(multi + 3)是一回事吗?
multi[3][10]
然后&multi[0][0]
将多
如果我们想访问的任何元素数组英寸我们只需要一个解引用。因为它位于不断。我无法理解双引号。 作为
*(*(multi+row)+column)
假设我们有一个多维数组。How&multi [3] [0]和*(multi + 3)是一回事吗?
multi[3][10]
然后&multi[0][0]
将多
如果我们想访问的任何元素数组英寸我们只需要一个解引用。因为它位于不断。我无法理解双引号。 作为
*(*(multi+row)+column)
&multi[0][0]
是阵列multi
的第一元件,其等效于multi[0]
的地址。
multi
是一维数组的数组。当在表达式中使用时,multi
将衰减为指向它的第一个元素,但操作数为sizeof
和一元&
时除外。
在表达式
*(*(multi+row)+column)
内*
是取消引用一维数组(行)和所述外*
是取消引用该行的元件。
*(multi + row) => multi[row]
*(*(multi+row)+column) => *(multi[row] + column) => multi[row][column]
你的意思是multi [0]是一个指针。所以打印它应该给地址。但它正在给予价值。 –
'multi [0]'是一个10'int'的数组。衰减规则将像其他数组一样应用于它。 – haccks
Int * ptr = multi –
“'&multi [0] [0]'将会是'multi'' - 不会的。如果您尝试打印它,它可能会打印出相同的内容,但它们的类型完全不同。解引用第一个将产生与解引用第二个完全不同的结果。 – user2357112
什么是类型? –
@SaketAnand;你不认识“类型”,认真吗? – haccks