アカウント名:
パスワード:
int *n = NULL;*n = 5;
そうじゃなくて、クラスかそうでないかで分けるのが普通では?
有用なプログラムの多くはCからのI/Fも持ってます。そういうものは結構そうなってますよ。
本当は、 char value;char* value; なんて書式のほうがわかりやすかったはずだ。今は文法的にこれは許されていないから、ポインタ変数の定義をする場合は、普通は仕方なく、 char * value; と「*」を離して書くくらいしかできない。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
本当にひどい記事だが (スコア:1)
Re:本当にひどい記事だが (スコア:0)
「そのすぐ後に5で上書きされる」とか思ってそう。
#そのために「int* n = NULL」という記法が編み出されたというか。
Re:本当にひどい記事だが (スコア:1)
Re:本当にひどい記事だが (スコア:2, すばらしい洞察)
int*と書けば、「整数のポインタ型」という型として認識出きるので混乱が少なくなります。typedefとか使ってpintとかにするとより良い感じですね。
TAなどで指導する時にも、そのように説明してるんですけど、如何せん教科書と記法が違うのが最大の問題です。
*の意味が宣言時と参照時?では違うということをきちんと説明してない本や人が多すぎorz
Re: (スコア:0)
初めてC言語に触ったとき、この文法で混乱しました。
宣言時は*ありでHLなのに、使用時は*があると(HL)で、なしでHLだもんだから。
#Z80は入門にはいい石だった。68000はもっといい石だった。
Re:本当にひどい記事だが (スコア:1)
そうじゃなくて、クラスかそうでないかで分けるのが普通では?
int *n = ...;
CObject* v = ...;
という具合に。Objective-Cとかでもそうかな。
理由としては、組み込み型の場合だと極端な例では
int a[] = {1, 2, 3}, *p = NULL, b = 3;
とかすることもままあるけど、クラスだと宣言は一個ずつことが多いことだと思います。
Best regards, でぃーすけ
Re:本当にひどい記事だが (スコア:1)
Re:本当にひどい記事だが (スコア:1)
その上で、sourceforgeとか、googlecodesとか見てもらえば良いと思います。有用なプログラムの多くはCからのI/Fも持ってます。そういうものは結構そうなってますよ。
Best regards, でぃーすけ
Re:本当にひどい記事だが (スコア:1)
本題に戻ると、そもそも、あなたが普通だと言ったのが事の始まりなのだから、私に検証させるという労を負わせるのではなく、ご自分が定量的に示してください。
extern "C"な関数は、基本的にCプログラマがユーザなのだから、そういう場合にはすべてCスタイルで宣言するのが当然だと思いますが、もしかしてこれがあなたの主張の根拠ですか?
Re: (スコア:0)
int* n, m; と書いた時に n はポインタ型でmは整数型というのをぱっと見で区別するのが面倒だからでは
int *n, m; ならばまあ明らかだし
int m, *n; なら間違いようがない
…一つの宣言で違う型の変数をいくつも宣言するのがそもそも混乱の元だというのはよくわかっています
Re: (スコア:0)
int* n;
int m;
あるいは
typedef int* int_ptr;
みたいに本当にtypedefしてしまうとか。
Re:本当にひどい記事だが (スコア:1)
Re: (スコア:0)