编辑:我从问题标题中删除了更快/更高效,因为它有误导性..我的意图不是优化而是理解数组.抱歉,添麻烦了!
int array[10][10], i, j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
std::cin>>array[i][j];
}
Run Code Online (Sandbox Code Playgroud)
与
int array[10][10], i, j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
std::cin>>array[j][i];
}
Run Code Online (Sandbox Code Playgroud)
我很确定答案与如何在硬件级别实现数组有关; [] []语法只是程序员的抽象,以帮助可视化/建模.但是,我忘记了上面的代码从开始到结束依次访问内存块...
感谢所有的答案...
只是为了证实我的理解,这是否意味着第一个代码相当于
int array[10][10], k;
for(k=0;k<100;k++)
{
std::cin>>*(array+k);
}
Run Code Online (Sandbox Code Playgroud) 为什么不像普通数组那样在函数中声明2D数组参数?
void F(int bar[]){} //Ok
void Fo(int bar[][]) //Not ok
void Foo(int bar[][SIZE]) //Ok
Run Code Online (Sandbox Code Playgroud)
为什么需要声明列的大小?