[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 11:29 / Filesize : 188 KB / Number-of Response : 978
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

この会社辞めようと思ったソースコード#15



1 名前:仕様書無しさん [2006/12/26(火) 16:18:46 ]
この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。
プログラマを悩ませるソースコード。
をつらつらと綴っていって頂戴。

ちなみにここは質問スレじゃないので
技術的な質問がしたいならム板に逝って。

前スレ
この会社辞めようと思ったソースコード#14
pc8.2ch.net/test/read.cgi/prog/1158190165/

148 名前:仕様書無しさん mailto:sage [2006/12/29(金) 21:42:35 ]
>>144
原因:アセンブリとCを配列が扱える程度までやらせて、下の文章を見せる。

--以下某書籍より引用--

COLUMN-4 p[i]って配列?

出来の良くないC言語の教科書では、p[i]はpという配列のi番目の要素であるとか、なんかそん
なことが書いてあると思います。それは間違ってはいないかもしれませんが、結局ただのごまか
しです。読者がアセンブラを理解していない場合は、そうやってごまかして説明するのが一番ラ
クなのです。

p[i]というのは*(p+i)と完全に々意味で、長く書くのがめんどうな場合や、見た目の都合の
ために使うものです。この例の場合は、「*(p+i)」と書くと6文字ですが、「p[i]」なら4文字なので
す。それだけのことなので、好きなほうを使えばいいのです。ポインタを使いつつ「配列っぽく
みせつらめ」の、省略表記でしかありません。

逆にp[0]と書く代わりに*pと書いても同じなのですから、こっちのほうが2文字減るわけです。
まあ状況に合わせて好きなほうを使えばいいだけです。

書き方を変えたら、ポインタが配列になったとか、そんなことじゃないです。変な教科書にだま
されないでください。コンパイルの結果で生成される機械語も、完全に同じになります。意味の
変化がなく、単に書き方の違いでしかないという何よりの証拠です。

--次レスに続く--

149 名前:仕様書無しさん mailto:sage [2006/12/29(金) 21:43:26 ]

余談ですが、足し算は足す順序を変えてもいいので、*(p+i)を*(i+p)と書き換えることができ
ます。だからp[i]をi[p]と書くこともできます。(うそだあ、と思うかもしれませんが、もちろん
エラーにならないし、ちゃんと動きますよ)。a[2]を2[a]と書いてもいいのです。(これももちろ
ん本当ですよ)。これが、2という配列のa番目の要素と言えるでしょうか?ぜんぜん言えません。
だから、やっぱりp[i]やi[p]はただの省略表現であって、本質的には配列とは関係ないのです。

--引用終了--

結果:知的好奇心追及の旅に出発し、プロ並に基礎が固まる。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<188KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef