【初心者歓迎】C/C++室 Ver.48【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.48【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト275:244 08/02/09 20:24:00 >>271 動きました。 私のだと、いろいろな点で駄目でしたね。 ありがとうございました! 276:デフォルトの名無しさん 08/02/09 20:29:58 ちょっとお尋ねしたいのですが、 char *p というポインタに、なにかしらのアドレスが格納されていて、 cout << p; とした時に、仮に ss[100] = {a b, c ...}; (ss[100] = \0 とする) p = ss; だった場合は、ss[0]から順に\0が出てくるまで走査して、 cout << p; で、abc... と表示するわけですよね。つまり配列の要素100個分順番に読み込んでるってことですよね。 では、もしポインタpに格納されているアドレスが普通の変数のアドレス p = &a みたいな場合だった時は、 cout << p; では、単純に変数aのアドレスが出力されるだけですよね。 で、ここで疑問なのですが、 p = &a; cout << p; だった時、処理系はどうやってpが「変数」のポインタだと判断するのでしょうか?? 「配列」のポインタの場合もあるので、何かしらの方法で判断していると思うのですが、 「メモリを順番に走査して\0が出てこなかったら変数のポインタ」だとしたら 毎回\0が出てくるまで番地を順番に走査していかなくてはならないので(\0が出て来ないかもしれないのに(変数の場合))何か違う気がします。 ポインタには、アドレスや型の情報だけではなくて、そのアドレスが変数のアドレスか、それとも配列の先頭アドレスかという情報も入っているんでしょうか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch