假设我们有array A[m] [n]
。我发现A=A[0]
。如果两个字词仅包含地址,那么为什么*A
和*A[0]
会给出相同的结果?
假设第一个元素是2
,它的基地址是1000
,那么如果A
和A[0]
都包含1000
,则取消引用这两个术语应该产生与2
相同的结果。
答案 0 :(得分:1)
A
不等于A[0]
,但A=&A[0][0]
,即A
是指向矩阵第一个元素的指针。 A[0]
是指向A[0][0]
的指针。
所以:
*A
提供A[0]
; *(A[0])
给2; *(*A)
给2; 例如:
#include <iostream>
int main() {
int A[5][5];
A[0][0] = 2;
std::cout<< *A << std::endl;
std::cout<< *(*A) << std::endl;
std::cout<< *(A[0]) << std::endl;
return 0;
}
此代码打印:
0x7fffc5a6fc70
2
2