有没有人想过为什么我们中的很多人使用相同的变量名重复相同的模式?
for (int i = 0; i < foo; i++) {
// ...
}
看来我曾经看着用途大多数代码i
,j
,k
等为迭代变量。
我想我是从某个地方捡来的,但是我想知道为什么这在软件开发中如此普遍。是我们所有人都从C中获得的东西还是类似的东西?
我的脑后已经痒了一段时间。
ii
(和jj
,,kk
...),以便在搜索时更容易定位。
有没有人想过为什么我们中的很多人使用相同的变量名重复相同的模式?
for (int i = 0; i < foo; i++) {
// ...
}
看来我曾经看着用途大多数代码i
,j
,k
等为迭代变量。
我想我是从某个地方捡来的,但是我想知道为什么这在软件开发中如此普遍。是我们所有人都从C中获得的东西还是类似的东西?
我的脑后已经痒了一段时间。
ii
(和jj
,,kk
...),以便在搜索时更容易定位。
Answers:
i
并且j
通常在相当长的一段时间内都被用作数学的下标(例如,即使在比高级语言更早的论文中,您也经常看到“ X i,j ”之类的东西,尤其是在诸如求和之类的东西中)。
在设计Fortran时,他们(显然)决定允许这样做,因此所有从“ I”到“ N”开头的变量都默认为整数,所有其他变量都为实数(浮点数)。对于那些错过它的人来说,这是古老的笑话“上帝是真实的(除非声明整数)”的根源。
大多数人似乎没有什么理由改变这一点。它是众所周知的并且很简洁。有时,您会看到一些精神病患者写的东西,他们认为这样的东西确实有好处:
for (int outer_index_variable=0; outer_index_variable < 10; outer_index_variable++)
for (int inner_index_variable=0; inner_index_variable < 10; inner_index_variable++)
x[outer_index_variable][inner_index_variable] = 0;
值得庆幸的是,这是非常罕见的,虽然,多数风格指南现在指出,虽然长的,描述性的变量名可以是有用的,你并不总是需要他们,尤其是对于这样的事情,其中的变量的作用域只有一两行的代码。
i
-索引。
用于索引循环迭代的临时变量。如果您已经有一个i
,那么比转到j
,k
等等更自然呢?
在这种情况下,idx
也经常使用。
简短,简单,并准确显示变量的用途,如变量名一样。
i
循环。
i
也可能意味着迭代器。
在FORTRAN i
中,第一个默认为整数类型的字母。隐式整数类型的所有范围都是以字母开头i
的n
。与三个层面的循环工作得到了美国i
,j
和k
。该图案继续增加尺寸。同样,“ x”,“ y”和“ z”默认为浮点,用于需要实数的循环变量。
需要litleadv
注意的i
是,索引的最小收缩也是。
考虑到这些变量在本地使用,不使用更具描述性的名称不会出现问题。
我相信它来自求和: