いや、まだだから

やまだの仮想庭園 ~ いつか実体の伴う日まで

目次

Blog 利用状況

記事カテゴリ

書庫

日記カテゴリ

リンク

2008年3月18日 #

VB使いにはC++の名前の由来が理解できない?

東京勉強会#18 お疲れ様でした。

私は諸般の情事事情により、欠席させていただきました。しかし、ちっとも休んだ気がしないのはどうしてなんだろう(笑)。
むしろ出席するより大変だったような気が……。なぜだー。

 

さてさて、今回は小ネタを少々。

今までCとかC++とかJava とかになじんできたので、むしろ当たり前に思っていたことなのですが。

インクリメント/デクリメント演算子ってのがあります。軽くおさらいしておくと、インクリメント演算子とは

i = i + 1;

のことを

i++; もしくは ++i;

って書くことです。これも一種のシンタックスシュガーと呼べるものなのかもしれません。

変数の前に ++ を書くか、変数の後に ++ を書くかには微妙な差異があって、

j = ++i;

って書くと、

i = i + 1;

j = i;

の意味を持ちますが、

j = i++;

って書くと、

j = i;

i = i + 1;

の意味を持ちます。この場合、j が加算前の値をとるか加算後の値をとるかが違います。

知ってる人にとっては、非常に今更な話なんですが、この前、ちょっと VB.NET で似たような構文を書こうとしたんですよ。

あれ? --i は書けるけど i-- が書けない。
--i って書いても、値が変わっているように見えない。

で、ようやく気がついた。VB.NET ってインクリメンタル/デクリメンタル演算子がないのですね?(→ここからタイトルにつながる)
つまり、--i って書けるように見えても、実は -(-i) の意味で二回符号を反転させるので、実は i と変わりないってことかと。

#嘘書いてたら指摘お願いします。

 

非常に紛らわしいな、と。

#早く、○○○○っ○に言語対応表を作ってもらいたいな、と。

posted @ 4:37 | Feedback (14)