我正试图从arr [1] [1]
'扫描'二维数组第一,
for(int i=1;i<=n;i++){
scanf("%s",arr[i]);
}
如果我写上面的代码,
内容从[1][0]~[n][0]
开始。
但我想从[1][1]
开始。
我认为
for(i=1;i<=n;i++) for(j=1;j<=n;j++)
scanf(" %c", &arr[i][j]);
是可能的,但是,有没有有效的方法?
我试过......
for(i=1;i<=n;i++)
scanf("%s",(&arr[i][0]+1))
// or scanf("%s",&(*arr[i]+1)) //compile error..
但失败了。
答案 0 :(得分:2)
首先@WhozCraig评论是正确的,你应该尝试使用零基础索引,否则你会浪费内存并使一般代码变得更难。 除此之外,你的两个循环的例子是唯一的方法,没有更有效的方法,如果你想读入整个数组,你需要遍历它。