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



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

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

arr是一个二维数组:

int arr[500][500];

...什么意思?

意思是"旧习惯难改"。

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

数组的默认基本索引为 1 的其他语言是 XPath/XQuery、Wolfram Language、Sass、R、PL/I、MATLAB、Mathematica、Lua、Lingo、Julia、FoxPro、CFML、APL。

注意:以上信息是从wiki关于编程语言(数组(比较的文章中收集的。

最新更新