int two(int k[][2])
{
cout<<"&k="<<&k<<'\t'<<"k="<<k<<'\n'; // A
}
int main()
{
int b[2][2]={{1,2},{3,4}};
two(b);
system("pause");
return EXIT_SUCCESS;
}
提问:问什么在A处的,&k与k输出的值不一样?还有&k是什么意思?
一,在main函数中加入这句话:cout<<"&b="<<&b<<"b="<<b<<'\n';
&b和b输出的值是一样,这样的输出结果和A处是不一样的。
二,在函数 int two(int k[][2])处,系统是否像为其他的二维数组那样为k[][2]开辟了一连串的内存空间;还是在此处k[][2]已经转变为指针变量k,系统只为它开辟了大小为4个字节的空间,用来接收实参传来的首地址?
三,对于b[2][2]来说,b应该表示是数组名,第0行地址,或首地址,而不是像 qmaoting 所说那样是首元素的地址吧??
最后也是最重要的,感谢各位的用心解答,非常感谢!