規格票で解説してあるといいね。どこを見ればいいのかな?
>>950 typeidにT&型のオブジェクトを使用しても、参照だからTを見に行ってしまう。
だからtypeidで確認するのは無意味。
typeid()で同じと判断されたら、同じだと思っていいんじゃね?
>>948 #include<iostream>
template <int N>
void func(int (&a)[N]){std::cout << typeid(&a).name();}
int main(){int a[10];func(a);}
dmc,g++,clで試してみたけど全部int[10]と認識されていたけど、
どこのコンパイラの話?
BCCはint*になる。
古いgccもHPのccもVC6も確かダメだな。
>template<typename T, std::size_t N> inline std::size_t numberof(T (&)[N]) {return N;}
これが通らない。
VC6のテンプレート回りはへっぽこさんだから…
テンプレートスレになっとるがな。
>排除であるが、 Ocamlもやはりポインタ的な物を含んでいる。
Ocamlのポインタ的なものって、参照とかmutableフィールドか?
そうすると、この人の目指すところはHaskellあたりにしかないのだが。
配列とポインタって、概念が違うだけで、実際には同じじゃね?
つうか、配列使うな。 ポインタも使うな。
使っていいのは、リスト構造。
>>962 Cのポインタは事実上配列にアクセスすするための一手段と化している。
確か標準関数で文字列周りはポインタで渡してたな
いいか、ポインタの代わりに、メッセージIDを使うんだ。
欲しいオブジェクトのデータを貰うためには、そのIDとオペレーションを書いてメッセージボトルに入れて、海に流すのさ。
そうすると、メッセージボトルを受け取った相手が、それが自分宛でなければまた海に流す。
繰り返すうちにいずれは宛先の相手に届くからな。
目的の相手に届いたら、メッセージに書かれてるオペレーションを元に結果をまたボトルに入れて海に流してくれるんだ。
さあ、こうやって直接メモリーの番地を指定しなくとも、あいてに伝わる方法はあるのさ。
相手が受け取るまで手渡しリレーでもいいから、ポインタなんて使わなくていいのさ。
>>965 そのメッセージIDをポインタと呼称しても、違和感無く他人に通じると思うよ。
「ここの作業よろしくね」
っといってその場所を書いた紙を作業者に渡す
場所を書いた紙 = ポインタ
結局、ポインタと配列って、見方を変えただけの物だと思うよ。
家と言う入れ物に住所が書いてあるのは、配列に番号が振ってあるのと同じ。
ある規則によって振られた識別子ね。
ポインタというのは、強いて言えば、東経135度23分xx、北緯32度26分xxといったたぐいのもの。
機械の中身の厳密なメモリーの位置ね。
>>967 ポインタとは違うが、最近のCPUではメモリアドレスも仮想化されて、
何段かテーブル参照をしてようやく物理メモリのアドレスを得ることもある。
それがなんだか漂流とは違うけど、似たようなものを感じ取った。
ポインタの主な使われ方の一つに連続要素の参照があるだけで
全然違うものだと思うんだが。
配列を覚えるだけで、
ポインタを完全に使いこなせるようになるなら同じものといえる。
そうでないなら実質的に違うもの。
Cみたいに配列とポインタに違いを見出せない人がいるほど密接な言語ばかりではないんだよ。
>>972 それって配列は知ってるけどメモリ上にどう格納されてるのか知らないから
違うって話じゃないのか?
>>974 いや、学習にかかるコストの話。
ポインタを使うには、ポインタ演算や間接参照、ポインタのポインタ、
ヌルポインタの対処など色々学習する必要がある。
同じと見なすには新たに覚えることが多すぎるのでは?ということ。
>>975 まぁポインタ習得は結構時間かかったけどな
でも苦労しただけの価値はあると思うよ
ポインタ知らない頃のソース見ると多重ループの山で
ソースが画面右はみだしてたからな
昔すぎてよく憶えてないけど、
ポインタ使うのにそんな苦労した記憶ないなあ。
僕が読んだ本ではかなり最初の方でポインタの解説してたし
ソースをガリガリ書くようになったのは一通り覚えた後だったからかな。
覚えちまえば何のことはないし、
何で覚えるのに苦労するのかすらわからなくなるが、
初めて出くわした時には確実に蹴躓いてる、それがポインタ。
つーか実のところポインタが難しいんじゃなくって、それで実装される
リストとかのデータ構造の学習が難しいんじゃなかろうか。
俺は機械語→アセンブリ→PL/M→C と来たから
なんでポインタが理解できないのかが理解できない。
>>978 後段落
それはない。それ以前で躓いている。
ポインタの方が効率的で解りやすい時もあるよ。
なんでもかんでも配列でやるのは、かえって複雑になるよ。
ポインタで躓いた記憶はあるけど、いつの間にか使えるようになってた。
「こういう時にこう使うんだ」って体験を積み重ねていけば、
その内体で覚えられるんじゃないかな。
ついにこのスレも980超えたか
煽り気味のスレタイのわりに面白かった。
やっぱそう思う人が多いってことなんだろうな。
Cで最初に蹴つまずく壁だろうからなー。
読んだことは無いが、Cのポインタだけで一冊書いた本とか出てなかったっけ。
一冊分も書くことがあるのが不思議ではあるが。
ポインタ完全制覇は結構面白かった
以下ポインタ完全制覇の要約で感動のフィナーレ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
988 :
デフォルトの名無しさん:2006/09/08(金) 03:42:46
ポインタが完全制覇できます
989 :
デフォルトの名無しさん:2006/09/08(金) 03:43:23
〜 完 〜
991
992
993
994
995
996
aa
998
999
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。