scanf(“%d”,array [i] +1)是什么意思?为什么+1在那儿?

时间:2018-09-01 14:23:27

标签: c++ arrays

我已经看到很多代码片段,它们从1而不是0开始for循环,然后扫描到arr[i] + 1地址,这是什么意思?

for(int i = 1; i <= n; ++i) { scanf("%d", arr[i]+1); }

arr是一个二维数组:

int arr[500][500];

1 个答案:

答案 0 :(得分:3)

  

...是什么意思?

这意味着“旧习惯很难消亡”。

这意味着该代码的作者可能是经验丰富的程序员,使用的编程语言中数组的默认基本索引为1。最有可能的候选对象是ALGOL,AWK,COBOL,Fortran和Smalltalk。他们不想改变他们的旧习惯并采用C ++索引。

具有默认默认数组索引为1的其他语言是XPath / XQuery,Wolfram语言,Sass,R,PL / I,MATLAB,Mathematica,Lua,Lingo,Julia,FoxPro,CFML,APL。< / p>

注意:以上信息来自Wiki在Comparison of programming languages (array).上的文章