アカウント名:
パスワード:
プログラミング言語Cといえば、ポインタの章が理解できずに何度も読みすぎてそのページだけ黒くなっていました。ご逝去の報に接し、謹んで哀悼の意を表します。
Cの前にマシン語をやっていたので、ポインタは理解できた(というか、ポインタが理解できない人のことが理解できない)のですが、関数へのポインタの配列を返す関数にtypedefして~とか言うと、ついていけなくなります。
それから、
int *i;
は理解できますが、
int* i;
と書く発想が理解できません。「int*」って何だよ?って。
今は後者が主流な気がする本の影響もあってC++使いは特に
私の場合、Z80世代からパソコンをはじめて、今の本職はC++ですが、
int *p;
の書き方じゃないと落ち着きません。その変数がポインタであることが見た瞬間に理解できるような書き方をしたいので、*と変数名はつなげて書きたいです。
初期のCを飛ばして、C++やJavaから入った人だと、
int* p;
と書くようです。
そういう人は、 unsigned char* p; とか書くんでしょうか?unsignedとcharの間にスペースが入っているのに、charと*の間が詰まってるのって、気持ち悪くないですかね?
こういうのを見る度に、こっそり書き直したくてそわそわします。しかし、バージョン管理システムに履歴が残ってしまうので、迂闊に書き直すわけにもいきません。まったく困ったものです。
以下の C++ における char* p; なコードは、char *p; 派としてはどのように書くと一番しっくり来ますか?
const char* const str = "ABC"; // 当然 const char const *str とは書けません
C++ は char *p; より char* p; だと思いますよ。
私は個人的にconstは後ろ寄りに書く習慣でやっていますので、
const char *p; ではなく、 char const *p; と書きます。
従って、 const char* const str = "ABC"; は、 char const *const str = "ABC"; になります。
まあ「*const」の部分はちょっと微妙なので、間にスペースを入れても入れなくてもいいかなと思います。
そんなわけで、やっぱり C++ でも char* p; より char *p; だと思いますよ。
"const str" に * を付ける、という感じですか。なるほど。 しかし個人的には *const はかなり座りが悪い感じがするので、それならいっそ char * p; でいいようにも思えますね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
プログラミング言語C (スコア:0)
プログラミング言語Cといえば、ポインタの章が理解できずに何度も読みすぎてそのページだけ黒くなっていました。
ご逝去の報に接し、謹んで哀悼の意を表します。
Re: (スコア:0)
Cの前にマシン語をやっていたので、ポインタは理解できた(というか、ポインタが理解できない人のことが理解できない)
のですが、関数へのポインタの配列を返す関数にtypedefして~とか言うと、ついていけなくなります。
それから、
は理解できますが、
と書く発想が理解できません。「int*」って何だよ?って。
Re: (スコア:0)
今は後者が主流な気がする
本の影響もあってC++使いは特に
Re: (スコア:2)
私の場合、Z80世代からパソコンをはじめて、今の本職はC++ですが、
int *p;
の書き方じゃないと落ち着きません。その変数がポインタであることが見た瞬間に理解できるような書き方をしたいので、*と変数名はつなげて書きたいです。
初期のCを飛ばして、C++やJavaから入った人だと、
int* p;
と書くようです。
そういう人は、 unsigned char* p; とか書くんでしょうか?
unsignedとcharの間にスペースが入っているのに、charと*の間が詰まってるのって、気持ち悪くないですかね?
こういうのを見る度に、こっそり書き直したくてそわそわします。しかし、バージョン管理システムに履歴が残ってしまうので、迂闊に書き直すわけにもいきません。まったく困ったものです。
Re: (スコア:1)
以下の C++ における char* p; なコードは、char *p; 派としてはどのように書くと一番しっくり来ますか?
C++ は char *p; より char* p; だと思いますよ。
Re:プログラミング言語C (スコア:2)
私は個人的にconstは後ろ寄りに書く習慣でやっていますので、
const char *p; ではなく、 char const *p; と書きます。
従って、 const char* const str = "ABC"; は、 char const *const str = "ABC"; になります。
まあ「*const」の部分はちょっと微妙なので、間にスペースを入れても入れなくてもいいかなと思います。
そんなわけで、やっぱり C++ でも char* p; より char *p; だと思いますよ。
Re:プログラミング言語C (スコア:1)
"const str" に * を付ける、という感じですか。なるほど。
しかし個人的には *const はかなり座りが悪い感じがするので、それならいっそ char * p; でいいようにも思えますね。