C言語初心者です。
i,jなどの見ても何の変数か意味が分からない変数の名前の付け方を教えください。
なぜ、iなんですか?あまり使わないからですか?変数i,変数jの続きがあるとしたら何のアルファベットですか?
意味を持たない変数の名前の付け方
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: 意味を持たない変数の名前の付け方
意味のない変数の名前は余り使わないほうが良いです。
そういう前提のものとであえて使う場合もあるi,jですが私はFORTRAN起源説を支持します。
昔のFORTRANではi,j,k,l,m,nからはじめる変数はINTEGER型を暗黙で宣言したのと同じでした。他はREAL型(Cで言うところのfloat)となります。
なのでFORTRANのプログラマーがいちいち型宣言せずに整数型が使えるi,j,kを好んで使ったのです。
ちなみにaではなくiが最初なのはINTEGERだと思われます。iだけで足らなくてj,k,l,m,nと追加されたのでしょう。
そういう前提のものとであえて使う場合もあるi,jですが私はFORTRAN起源説を支持します。
昔のFORTRANではi,j,k,l,m,nからはじめる変数はINTEGER型を暗黙で宣言したのと同じでした。他はREAL型(Cで言うところのfloat)となります。
なのでFORTRANのプログラマーがいちいち型宣言せずに整数型が使えるi,j,kを好んで使ったのです。
ちなみにaではなくiが最初なのはINTEGERだと思われます。iだけで足らなくてj,k,l,m,nと追加されたのでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
かずま
Re: 意味を持たない変数の名前の付け方
数学で、数列、級数、行列を学んだことはありませんか?
例えば、 これをプログラムで書くと m行 n列の行列の要素を a ij と書きますよね。
このように i, j, m, n は数学で、上記のような場合によく使われます。
だから、その後、コンピュータが発明され、プログラミング言語が作られたとき、
数学の記法をなるべくそのまま使いたいと考えたのは当然のことです。
FORTRAN というのは Formula Translation、すなわち「数式翻訳」という意味です。
n は number(個数)、i は index(添え字) を表しているものと思われます。
例えば、 これをプログラムで書くと m行 n列の行列の要素を a ij と書きますよね。
このように i, j, m, n は数学で、上記のような場合によく使われます。
だから、その後、コンピュータが発明され、プログラミング言語が作られたとき、
数学の記法をなるべくそのまま使いたいと考えたのは当然のことです。
FORTRAN というのは Formula Translation、すなわち「数式翻訳」という意味です。
n は number(個数)、i は index(添え字) を表しているものと思われます。
Re: 意味を持たない変数の名前の付け方
しかしi, jはある程度経験のあるプログラマが見たら、使用している場所にもよるけど「ループのカウンタだな」と想像がつくと思います。
ループカウンタをiにするのは慣習的なことなので、むしろ他の名前にするとコードの可読性が失われるかもしれません。
ループカウンタをiにするのは慣習的なことなので、むしろ他の名前にするとコードの可読性が失われるかもしれません。
for (int studentListIndex = 0; studentListIndex < studentList.size(); ++studentListIndex) {
studentList[studentListIndex].do_something();
}