我在理解指针时遇到了一点麻烦。如果我声明了一个多维数组char ma[10][30]
。元素的地址是什么"ma[2][20]"
?如果必须将地址分配给指针变量,那不是"p = &ma[2][20]"
。)
问问题
244 次
3 回答
2
ma[2][20]
is ma[2] + 20
since的地址ma
是一个字符数组
或者p = &(ma[2][20])
- 很确定括号很重要......
于 2013-02-11T04:03:10.110 回答
1
多维数组实际上只是一块连续的内存。在这种情况下,数组是一块大小为 10*30 = 300 字节的字符(字节)。编译器通过两个“维度”处理对该数组的访问。
ma[2][20] 的地址是 'ma' + 2*30 + 20 或 'ma+80' 字节的地址。'ma' 是表示数组的内存块的起始地址。
于 2013-02-11T04:05:58.357 回答
0
在静态数组中,内存分配是连续的。可以通过以下示例进行详细说明 int arr[2][5]= { {1,2,3,4,5}, {6,7,8,9,10}}; cout<
于 2013-02-23T14:50:11.627 回答