来自[1] [1]

时间:2018-03-11 07:06:09

标签: c

我正试图从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..

但失败了。

1 个答案:

答案 0 :(得分:2)

首先@WhozCraig评论是正确的,你应该尝试使用零基础索引,否则你会浪费内存并使一般代码变得更难。 除此之外,你的两个循环的例子是唯一的方法,没有更有效的方法,如果你想读入整个数组,你需要遍历它。